我有一个简单的xcopy脚本,我从命令行运行,该脚本读取目录和文件名的CSV文件。我之前使用过非常相似的脚本而没有任何问题。这是脚本:
Z:\HOME\>for /f "delims=, tokens=1,2,3,4" %i in (Z:\HOME\MissingImages.csv) do
echo f | xcopy "Y:\%j\%k\%l" "C:\Horizon\%j\%k\%l" >> Z:\HOME\MissingImagesLog.txt
但是,它没有复制任何文件 以下是日志文件中的条目:
Does C:\Horizon\K\00\6bef500f.IMG specify a file name
or directory name on the target
(F = file, D = directory)? f
0 File(s) copied
它正在查找图像,因为如果我将根目录更改为其他内容,脚本将仅使用0 File(s) copied
为所有条目填充日志文件,因此文件就在那里并且可以看到......
此外,Z:\
驱动器在网络上而不是本地驱动器,但我再次在网络上使用了一个非常相似的脚本而没有问题(只需要更长的时间)。
我尝试了不同的选项,例如/i
,/s
等,但我似乎无法将其复制到任何文件上。
答案 0 :(得分:11)
0 File(s) copied
,尽管只有你在路径中包含了引号。
“0复制文件”
失败xcopy "pathname1/file" pathname2\file
“参数数量无效”
失败xcopy pathname1/file pathname2\file
这很好用
xcopy pathname1\file pathname2\file
答案 1 :(得分:1)
它询问是因为它不知道您是要复制到目录(要创建)还是要提供完整的目标路径名。 这会问:
xcopy pathname1\file.from pathname2\file.to
但是,添加斜杠会告诉您复制到目录:
xcopy pathname1\file.from pathname2\to\
但我没有找到明确告诉我要复制和重命名文件的方法,除了
echo Y | xcopy pathname1\file.from pathname2\file.to
我在你的情况下玩了一下( ,做和 xcopy )并发现即使它要求 SOMEFILE是否在目标上指定了文件名或目录名(F =文件,D =目录)?它是从 echo 提供的 f 并且被复制了成功。因此,文件/目录指定不是问题,而是通过网络本身进行复制。
答案 2 :(得分:1)
让我失望的是它找到了文件,但无法复制它们,让我觉得这是网络或xcopy问题。
我刚刚运行了一个sed脚本来删除eol空格,xcopy脚本现在正在按预期工作。