我一直在努力尝试让下面的(例如)批处理文件在Windows XP SP3上工作。该IF NOT EXIST
部分似乎工作,但我一直收到"Does <path\filename.ext> specify a file name or directory name on the target"
消息,尽管使用/I
国旗XCOPY
:Windows XP批处理IF和XCOPY
@IF NOT EXIST "\\SERVER\PATH\TO\FILE DIR" (
MKDIR "\\SERVER\PATH\TO\FILE DIR"
XCOPY "\\SERVER\PATH\TO\ORIG FILE\FILE TEMP.XLSM" "\\SERVER\PATH\TO\FILE DIR\FILE FINAL.XLSM" /I
) ELSE (
XCOPY "\\SERVER\PATH\TO\ORIG FILE\FILE TEMP.XLSM" "\\SERVER\PATH\TO\FILE DIR\FILE FINAL.XLSM" /I
)
我的理解是,与/I
开关,XCOPY
应该创建的目录结构,如果它不存在 - 至少当我没有指定文件名的时候它会这样。不幸的是,对于这个项目的需求,我必须指定一个文件名,并且不能保留原始文件,因为它是一个模板文件,每天都会通过自动化过程进行操作。
所以,我试图让周围XCOPY
的问题,而不是通过检查路径的存在现有的目录路径,如果它不存在,与MKDIR
命令来创建它,然后复制文件 - 但XCOPY
仍然会提示目标是否是文件或目录,这是没有道理的,但也许我错过了一些东西。
只是要清楚,这是在Windows XP SP3。
任何想法?
我没有使用'COPY',因为上次我尝试使用UNC路径时会抛出一个错误,并且不会让我。这就是说,我只是试过这个,它的工作原理。我的理解是'XCOPY'更适合在NTFS卷之间复制文件 - 显然这是不正确的。我怪我的IT组织。 – DigitalNoise 2013-04-30 21:46:35
很高兴你能工作。一般来说,'xcopy'最适用于复制整个目录树,而'copy'只是复制文件的一部分。 :-) 不要忘记把你的问题标记为答案! – Mark 2013-04-30 21:52:35