robocopy 将文件复制到当前文件夹中的新文件夹中,无需新建文件夹
robocopy copy files to a new folder in the current folder without the new created folder
我想将整个文件夹复制到一个新的子文件夹中。目前我正在使用:
(robocopy "C:/Test" "C:/Test/a" /E> output.log) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
在 运行 之后,"C:/Test/a" 中还有“/a”文件夹。我不想要那个新文件夹。
当要复制完整的源目录树并且目标目录位于源目录树中的某处时,robocopy
命令似乎会混淆。因此,您的命令行会生成一个目录 C:\Test\a\a
,其中部分包含来自源代码的内容。
尝试使用 /L
选项(不复制但列出将被复制的项目),以便输出日志准确显示您所期望的内容。一旦您真正进行了复制(因此删除了 /L
),日志中就会出乎意料地列出更多项目。此行为表明 robocopy
不会提前评估整个源目录树,而是在实际复制操作期间评估。
避免这种情况的最简单方法是将目标目录排除在(重新)复制之外:
robocopy "C:\Test" "C:\Test\a" /E /XD "C:\Test\a"
顺便说一下,正确的 Windows 路径分隔符是 \
。尽管 robocopy
也接受 /
,但您应该坚持使用 \
,因为许多命令确实会误解 /
.
我想将整个文件夹复制到一个新的子文件夹中。目前我正在使用:
(robocopy "C:/Test" "C:/Test/a" /E> output.log) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
在 运行 之后,"C:/Test/a" 中还有“/a”文件夹。我不想要那个新文件夹。
当要复制完整的源目录树并且目标目录位于源目录树中的某处时,robocopy
命令似乎会混淆。因此,您的命令行会生成一个目录 C:\Test\a\a
,其中部分包含来自源代码的内容。
尝试使用 /L
选项(不复制但列出将被复制的项目),以便输出日志准确显示您所期望的内容。一旦您真正进行了复制(因此删除了 /L
),日志中就会出乎意料地列出更多项目。此行为表明 robocopy
不会提前评估整个源目录树,而是在实际复制操作期间评估。
避免这种情况的最简单方法是将目标目录排除在(重新)复制之外:
robocopy "C:\Test" "C:\Test\a" /E /XD "C:\Test\a"
顺便说一下,正确的 Windows 路径分隔符是 \
。尽管 robocopy
也接受 /
,但您应该坚持使用 \
,因为许多命令确实会误解 /
.