批量

时间:2015-12-02 14:38:39

标签: batch-file timestamp robocopy

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

但是我遇到了以下错误:

  

没有目的地目录指定

以下是代码:

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.

赞赏任何输入

1 个答案:

答案 0 :(得分:1)

问题是SET命令中的空格。例如:

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

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

因此,当您尝试使用%source%时,它实际上不存在。这也与%newDirectory%相同。

相反,请将变量设置为:

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

这将确保不包括任何前导/尾随空格。