从上一点继续批处理文件



我正在玩一个alpha游戏,当崩溃时会破坏保存的游戏,所以我创建了一个批处理文件来备份我保存的游戏。

@echo off
:A
REM deletes old backup
RMDIR /S /Q "backup location 1"
REM creates back up
xcopy "game location" "backup location 1" /e /i /q /r /y
REM adds time out for 300 seconds
timeout /t 300
REM deletes old backup
RMDIR /S /Q "backup location 2"
REM creates back up
xcopy "game location" "backup location 2" /e /i /q /r /y
REM adds time out for 300 seconds
timeout /t 300

REM Repeats 
Goto A

这工作得很好,但它总是在第一次备份时启动。我想做的是让它从之前的备份点继续。我创建了以下测试文件

@echo off
set point=a
echo The variable is "%point%"
if %point%==c (goto :a)
if %point%==a (goto :b)
if %point%==b (goto :c)

:a
Echo A
set point=a
echo The variable is now "%point%"
pause

:b
Echo B
set point=b
echo The variable is now "%point%"
Pause
:c
Echo C
set point=c
echo The variable is now "%point%"
Pause

当文件重新启动时,point变量是相同的。

是否有可能将设定点=保存变量到下次运行时的文件中?

你能解释任何代码建议,我可以用谷歌研究它自己,可能会得到一个更好的理解。但如果它太复杂,我可能不知道我在看什么,谷歌它。

感谢您的帮助

在某些版本的DOS中,您可以在set命令中使用/p参数来将文件的内容加载到变量中。

set /p point=<a.txt

其中a.t txt包含要设置"point"变量的值

保存数据的最佳方式是文件。

你可以用:

echo %variable%>filename.txt

,然后用

读出
set /p variable=<filename.txt

使用单行(例如一个变量)就可以了。这个方法可以扩展到更多的行。如果您想保存许多行(或未知数量),有更好的方法。

感谢您的回复。我还没有看过/p,但我会为我计划的未来脚本做。

对于这个脚本的要求,谢谢你个人。由于某种原因,我没有把它们放在一个有时间戳的文件夹里(尽管我以前用过它们)。

为了在一个文件中得到想要的效果,我修改了
xcopy "game location" "backup location 1" /e /i /q /r /y

xcopy "game location" "backup location %date:/=-% %time::=-%" /e /i /q /r /y 

,并重复一个命令。

另一方面,如果使用这种方法,将会有无限数量的文件夹。有没有办法将文件夹限制在z个数量并删除旧的?我很高兴删除旧的备份,我只是对未来的项目很好奇

相关内容

最新更新