首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmd批处理文件中条件函数出错

cmd批处理文件中条件函数出错
EN

Stack Overflow用户
提问于 2016-10-14 21:31:34
回答 1查看 44关注 0票数 0

我尝试使用以下代码复制filelist.txt文件中的文件列表。未复制结果文件。我不知道我在哪里弄错了。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2016-10-19 13:42:32

下面的命令行应该可以在批处理文件中使用:

代码语言:javascript
复制
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会自动创建目标目录树。

对于没有特殊属性的文件,也可能是:

代码语言:javascript
复制
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 /?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40044454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档