for 循环和 xcopy 创建模仿文件名的文件夹的问题?

Issues with a for loop and xcopy creating folders that mimic the file names?

我正在尝试使用 for 循环和 xcopy 命令将一组文件复制到我在文件列表 (filelist.txt) 中列出的新位置。但是,我的脚本存在一个问题,即创建了一个具有相同文件名的目录。

例如,我在 filelist.txt

中有以下内容
MC0707-06-10\M-1807-00246071.tif
BC25250218\B-1825-00000012-0.tif
BC37370727\B-1837-00000013-0.tif
MC4848-08-04\M-1848-00000007.tif
MC4949-02-24\M-1849-00000008.tif

命令行执行如下所示:

for /f "delims=" %i in (filelist.txt) do echo D|xcopy "E:\files\%i" "F:\files\%i" /i /z /y

注意我正在从 E 驱动器复制到 F 驱动器。所以在 E 上,文件是这样存储的:

E:\files\MC0707-06-10\M-1807-00246071.tif
E:\files\BC25250218\B-1825-00000012-0.tif
E:\files\BC37370727\B-1837-00000013-0.tif
E:\files\MC4848-08-04\M-1848-00000007.tif
E:\files\MC4949-02-24\M-1849-00000008.tif

在我 运行 xcopy 命令之后,我收到了这个结果集:

F:\files\MC0707-06-10\M-1849-00000008.tif\M-1807-00246071.tif
F:\files\BC25250218\M-1849-00000008.tif\B-1825-00000012-0.tif
F:\files\BC37370727\M-1849-00000008.tif\B-1837-00000013-0.tif
F:\files\MC4848-08-04\M-1849-00000008.tif\M-1848-00000007.tif
F:\files\MC4949-02-24\M-1849-00000008.tif\M-1849-00000008.tif

注意它是如何创建一个包含文件名的文件夹,然后然后将文件放在该文件夹中,而不是直接从源目录复制到目标目录。

我的 xcopy 命令中有什么可能导致此问题?

我明白了。复制时会提示是目录(D)还是文件(F)。在我的回声中,我正在返回 D:

for /f "delims=" %i in (filelist.txt) do echo D|xcopy "E:\files\%i" "F:\files\%i" /i /z /y

通过将其更改为 echo F,此问题已得到解决。

for /f "delims=" %i in (filelist.txt) do echo F|xcopy "E:\files\%i" "F:\files\%i" /i /z /y