我想将整个文件夹复制到一个新的子文件夹中。目前我使用的是:
(robocopy "C:/Test" "C:/Test/a" /E> output.log) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
运行此命令后,在"C:/Test/a“中还有"/a”文件夹。我不想要那个新文件夹。
发布于 2018-05-28 20:20:47
当要复制完整的源目录树并且目标目录位于源目录树中的某个位置时,robocopy
命令似乎会令人困惑。因此,您的命令行将产生一个目录C:\Test\a\a
,其中部分包含来自源代码的内容。
尝试使用/L
选项(不复制,但列出要复制的项),这样输出日志就会准确地显示您所期望的内容。一旦您实际执行复制(因此删除了/L
),日志中就会意外地列出更多的项目。此行为表示robocopy
不会提前评估整个源代码目录树,而是在实际复制操作期间进行评估。
避免这种情况的最简单方法是排除(重新)复制目标目录:
robocopy "C:\Test" "C:\Test\a" /E /XD "C:\Test\a"
顺便说一下,正确的Windows路径分隔符是\
。尽管robocopy
也接受/
,但您应该坚持使用\
,因为许多命令都会曲解/
。
https://stackoverflow.com/questions/50565728
复制相似问题