我引用了这篇文章中的代码: https://stackoverflow.com/questions/51399124/batch-file-to-copy-files-listed-in-a-text-file-from-source-to-destination-keepin
for /f "tokens=* delims=" %%a in ('type "W:\Parrot EN VO\Copylist.txt"') do xcopy /hrkvy "%%a" "W:\Parrot EN VO\VO4test"
当我使用文件路径按原样运行代码时,它运行完美。但是当我将 更改/hrkvy
为任意内容时,代码似乎无法运行。我在网上找不到任何关于该路径的参考资料,所以有人可以解释一下它实际上是什么意思吗?
答案1
这与批处理无关。这是您要查找的 xcopy 命令。
XCOPY /? 会给您相同的信息。
/H 同时复制隐藏文件和系统文件。
/R 覆盖只读文件。
/K 复制属性。常规 Xcopy 将重置只读属性。
/V 验证每个新文件的大小。
/Y 抑制确认是否覆盖现有目标文件的提示。
答案2
让我们一步一步分析这个命令
1. for
2. /f "tokens=* delims=" %%a
3. in
4. ('type "W:\Parrot EN VO\Copylist.txt"')
5. do
6. xcopy /hrkvy "%%a" "W:\Parrot EN VO\VO4test"
for 是处理 do 后面命令的命令,带有一组参数。第 6 行是正在执行的命令。/hrkvy 是 xcopy 命令的参数的一部分。你可以查看 xcopy /? 来查看允许使用哪些参数。
答案3
我在网上找不到关于该路径的任何参考。
它不是路径。Windows 使用它\
作为路径分隔符,而/
通常在类 Unix 操作系统(例如 Linux、MacOS)下使用。
当我将其更改
/hrkvy
为任意内容时,代码似乎无法运行。
这是因为命令/hrkvy
是选项xcopy
,而您输入的随机值可能不是。Microsoft 命令行程序使用/
来表示选项(例如dir /x
)。但是,选项不必单独列出(尽管可能是为了便于阅读)。
在您的示例中,这xcopy 命令概述表示正在使用以下相关选项:
/H Copy hidden and system files and folders (default=N).
/R Overwrite read-only files.
/K Copy attributes. XCOPY will otherwise reset read-only attributes.
/V Verify that the new files are readable.
/Y Suppress prompt to confirm overwriting a file. Can be preset in the COPYCMD env variable.
可以使用 显示这些相同的选项(以及更多选项)xcopy /?
。