Robocopy 显示无效参数

Robocopy showing invalid parameter

我正在为我的研究所制作备份程序,但 robocopy 副本显示

  Started : 11 April 2015 01:21:07 PM
   Source - F:\Training\HPES\CoreJava\
     Dest - F:-04-2015\

    Files :
  Options : /DCOPY:DA /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

ERROR : Invalid Parameter #3 : "21PM"

       Simple Usage :: ROBOCOPY source destination /MIR

             source :: Source Directory (drive:\path or \server\share\path).
        destination :: Destination Dir  (drive:\path or \server\share\path).
               /MIR :: Mirror a complete directory tree.

    For more usage information run ROBOCOPY /?

我的代码

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a

for /f "tokens=1,2,3 delims=: " %%A in ('TIME /T') do set mytime=%%A%%B%%C
pause
mkdir %datestr%
cd %datestr%
mkdir %mytime%
cd %mytime%

pause
robocopy F:\Training\HPES\CoreJava F:\%datestr%\%mytime%  /e
pause

它显示无效参数错误,但是当我 运行 通过删除源部分中的 %mytime% 块来删除此代码时,一切正常。帮助

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a

date /t 在其输出末尾包含一个 space,并且此 space 包含在 datestr 变量和您执行的最终命令中使用变量。所以 F:\%datestr%\%mytime% 包含一个 space (在 %datestr% 的末尾,将一个参数转换为两个。

如果要保留 space,请使用引号:"F:\%datestr%\%mytime%"

如果您不想保留 space,请查看您的输出,您可以更改为

for /f %%a in ("%date%") do set "datestr=%%a"