我有一个从目录中获取所有内容的程序 C:\ Users \ Hensel \ Desktop \ mc-server \ world,然后将其复制并粘贴到单独的目录中 C:\用户\汉森\桌面\备份\
然后它重命名它复制的名为“world”的文件,并将其重命名为日期/时间戳格式。
@echo off
:backup
xcopy C:\Users\Hensel\Desktop\mc-server\world C:\Users\Hensel\Desktop\backups\world /I /E /Y /D
ren world Logs-%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%
ping localhost -n 2700 >nul
goto backup
但每当我运行它(我在备份目录中执行它)时,它都会返回错误:“命令的语法不正确。”每当我删除重命名“world”的行时,它都可以正常工作,但是备份时文件将没有唯一的名称,除非它有日期和时间戳。
答案 0 :(得分:0)
如果不知道您的确切日期/时间格式,我会判断您在新文件名中有空格。
试
set "newname=Logs-%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%.txt"
set newname=%newname: =0%
ren world %newname%
如果这不起作用(它应该),那么告诉我们
会发生什么echo newname="%newname%"
应该在REN
所以全新的文件应该是:
@echo off
:backup
xcopy C:\Users\Hensel\Desktop\mc-server\world C:\Users\Hensel\Desktop\backups\world /I /E /Y /D
set "newname=Logs-%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%.txt"
set newname=%newname: =0%
ren world %newname%
echo newname="%newname%"
ping localhost -n 2700 >nul
goto backup
其中echo newname="%newname%"
行是可选的
同时,您可以尝试
代替PING
行
timeout /t 2700 >nul
以“批准”的方式延迟45分钟。