为什么xcopy在使用这些参数时不能复制文件?

Sag*_*gio 5 windows cmd xcopy

我有一个简单的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
Run Code Online (Sandbox Code Playgroud)

但是,它不会复制任何文件.这是日志文件中的条目:

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
Run Code Online (Sandbox Code Playgroud)

它正在查找图像,因为如果我将根目录更改为其他内容,脚本将只0 File(s) copied为所有条目填充日志文件,因此文件在那里可以看到...

此外,Z:\驱动器在网络而不是本地,但我再次在网络上使用非常相似的脚本没有问题(它只需要更长的时间).

我尝试过不同的选项,比如/i,/s等等,但我似乎无法将其复制到任何文件中.

小智 11

0 File(s) copied如果在路径中使用正斜杠"/"而不是反斜杠"\",xcopy也会报告,但是只有在引号中包含路径时才会报告.

  1. 失败并显示"0个文件被复制"

    xcopy "pathname1/file" pathname2\file
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这失败了,"参数数量无效"

    xcopy pathname1/file pathname2\file
    
    Run Code Online (Sandbox Code Playgroud)
  3. 这很好用

    xcopy pathname1\file pathname2\file
    
    Run Code Online (Sandbox Code Playgroud)


Sag*_*gio 1

嗯,这很烦人;我发现了这个问题。看起来当我生成 CSV 文件时,它在每行末尾放置了一个空格,因此 xcopy 正在寻找扩展名后有空格的文件。

让我失望的是它找到了文件,但无法复制它们,让我认为这是网络或 xcopy 问题。

我刚刚运行了 sed 脚本来删除 eol 空格,并且 xcopy 脚本现在可以按预期工作。