批量使用 robocopy 找不到目标目录

No destination directory found using robocopy in batch

我正在使用 robocopy 将所有文件和文件夹从一个目录复制到另一个目录。 每次执行脚本时,该目录将被复制到一个新的带有时间戳的文件夹中。

但是我收到以下错误:

No destination directory Specfied

代码如下:

echo off


set newDirectory = C:\Users\cmooney\Desktop

set DirName=%date:~-4,4%.%date:~-7,2%.%date:~0,2%.%time:~0,2%.%time:~3,2%
MD \%newDirectory%

set source = C:\Users\cmooney\Desktop\FolderA



rem /e copy all subdirs /z try again if fails /NMir copy only new files 

robocopy %source% %DirName% /e /z /Mir


rem leave cmd line open
pause



REM If there are no changes, robocopy will not copy anything. If you have tried 

REM and it worked, .... if no changes, no file copy.

感谢任何意见

问题出在您的 SET 命令中的 space。例如:

set source = C:\Users\cmooney\Desktop\FolderA

创建一个名为 %source % 的变量(注意末尾的 space),值为 C:\Users\cmooney\Desktop\FolderA(注意开头的 space)。

所以当你尝试使用%source%时,它实际上并不存在。 %newDirectory%也是一样。

相反,像这样设置变量:

set "newDirectory=C:\Users\cmooney\Desktop"
set "source=C:\Users\cmooney\Desktop\FolderA"

这将确保不包含任何 leading/trailing space。