我尝试使用以下代码复制filelist.txt文件中的文件列表。未复制结果文件。我不知道我在哪里弄错了。
for /f "delims=" %%i in (filelist.txt) do echo D|xcopy "E:\share\30\%%i" "C:\Users\jaishankar.a\Desktop\Unit-testing\%%i" /i /z /y /s发布于 2016-10-19 13:42:32
下面的命令行应该可以在批处理文件中使用:
for /F "delims=" %%I in (filelist.txt) do %SystemRoot%\System32\xcopy.exe "E:\share\30\%%~I" "C:\Users\jaishankar.a\Desktop\Unit-testing\" /C /H /I /K /Q /R /Y >nul它将文件名在filelist.txt中列出的文件从文件夹E:\share\30复制到文件夹C:\Users\jaishankar.a\Desktop\Unit-testing。
只将以反斜杠结尾的文件夹名指定为目标是很重要的,否则XCOPY会询问目标是指定了目录还是文件。XCOPY在这里自动将目标解释为目录,因为目标路径以反斜杠结尾,并且还在命令行上指定了选项/I。这就是为什么如果target指定了一个目录或文件,这里不需要echo命令和字母来回答提示的原因。
此命令行还会复制隐藏文件和系统文件,同时复制只读属性并覆盖与源文件同名的现有文件,即使设置了只读属性也是如此。
如果在复制第一个文件时需要这样做,XCOPY会自动创建目标目录树。
对于没有特殊属性的文件,也可能是:
md "C:\Users\jaishankar.a\Desktop\Unit-testing" 2>nul
for /F "delims=" %%I in (filelist.txt) do copy /Y "E:\share\30\%%~I" "C:\Users\jaishankar.a\Desktop\Unit-testing\" >nul在批处理文件中使用COPY时,目标目录C:\Users\jaishankar.a\Desktop\Unit-testing必须已经存在,这是出现第一行的原因。
注意:如果批处理文件由用户jaishankar.a执行,也可以使用C:\Users\jaishankar.a而不是%USERPROFILE%。
要了解所使用的命令及其工作原理,请打开命令提示符窗口,在那里执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
copy /?for /?md /?xcopy /?https://stackoverflow.com/questions/40044454
复制相似问题