繁体   English   中英

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

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

我正在尝试使用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命令中可能导致什么?

我想到了。 复制时,它会提示您是目录(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM