【发布时间】:2017-05-23 20:20:49
【问题描述】:
有时我的调用 :GetTime 过程有时不起作用。 有时我的档案被命名为 .rar 而不是例如 23.05.2017_22-02-07.rar
为什么会这样?大多数时候它工作正常....
for /f "usebackq delims=" %%a in (`"%MD5% default_main_GlobalData.CSF"`) do set StartMD5=%%a
for %%a in (%StartMD5%) do set StartMD5=%StartMD5:~0,32%
:Proc1
if exist del "%Workdir%\SniperGhostWarrior3_Savegames\Hidden\.rar"
if exist del "%Workdir%\SniperGhostWarrior3_Savegames\Profile\.rar"
for /f "usebackq delims=" %%a in (`"%MD5% default_main_GlobalData.CSF"`) do set CurrentMD5=%%a
for %%a in (%CurrentMD5%) do set CurrentMD5=%CurrentMD5:~0,32%
if not "%CurrentMD5%" == "%StartMD5%" (
call :GetTime
%Winrar% a -inul "%Workdir%\SniperGhostWarrior3_Savegames\Hidden\Temp.rar" "C:\Users\Administrator\Saved Games\Sniper Ghost Warrior 3\"
%Winrar% a -inul "%Workdir%\SniperGhostWarrior3_Savegames\Profile\Temp.rar" "D:\Spiele\Sniper Ghost Warrior 3\win_x64\Profile"
ren "%Workdir%\SniperGhostWarrior3_Savegames\Hidden\Temp.rar" "%CurrentTime%.rar" >nul 2>&1
ren "%Workdir%\SniperGhostWarrior3_Savegames\Profile\Temp.rar" "%CurrentTime%.rar" >nul 2>&1
set "StartMD5=%CurrentMD5%"
echo Game Saved. Backup created. %CurrentTime%
)
goto :Proc1
:GetTime
set "CurrentTime=%date%_%time:~0,-3%"
set word=-
call set CurrentTime=%%CurrentTime::=%word%%%
goto :eof
【问题讨论】:
-
for %%a循环有什么用?你永远不会在正文中使用它的变量%%a...而if exist del是错误的语法——参见if /?...
标签: loops batch-file set