我正在尝试使用for循环和xcopy命令将一组文件复制到我在文件列表(filelist.txt)中列出的新位置。但是,我的脚本存在一个问题,即创建了一个具有相同文件名的目录。
例如,我在filelist.txt
中有以下内容MC\1807\1807-06-10\M-1807-00246071.tif
BC\1825\18250218\B-1825-00000012-0.tif
BC\1837\18370727\B-1837-00000013-0.tif
MC\1848\1848-08-04\M-1848-00000007.tif
MC\1849\1849-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\MC\1807\1807-06-10\M-1807-00246071.tif
E:\files\BC\1825\18250218\B-1825-00000012-0.tif
E:\files\BC\1837\18370727\B-1837-00000013-0.tif
E:\files\MC\1848\1848-08-04\M-1848-00000007.tif
E:\files\MC\1849\1849-02-24\M-1849-00000008.tif
运行xcopy命令后,我收到了这个结果集:
F:\files\MC\1807\1807-06-10\M-1849-00000008.tif\M-1807-00246071.tif
F:\files\BC\1825\18250218\M-1849-00000008.tif\B-1825-00000012-0.tif
F:\files\BC\1837\18370727\M-1849-00000008.tif\B-1837-00000013-0.tif
F:\files\MC\1848\1848-08-04\M-1849-00000008.tif\M-1848-00000007.tif
F:\files\MC\1849\1849-02-24\M-1849-00000008.tif\M-1849-00000008.tif
注意它是如何创建一个包含文件名的文件夹,然后然后将文件放在该文件夹中,而不是从源目录到目标目录的直接复制。
我的xcopy命令中有什么可能导致此问题?
答案 0 :(得分:0)
我明白了。执行复制时,它会提示您是目录(D)还是文件(F)。在我的回音中,我回来了D:
for /f "delims=" %i in (filelist.txt) do echo D|xcopy "E:\files\%i" "F:\files\%i" /i /z /y
通过将其更改为回显F,这已得到解决。
for /f "delims=" %i in (filelist.txt) do echo F|xcopy "E:\files\%i" "F:\files\%i" /i /z /y