我正在玩一个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
重新启动文件时,点变量是相同的。
是否可以设置点=将变量保存到文件中以供下次运行?
您能解释一下建议的任何代码,我可以使用谷歌自己研究它,并可能会更好地理解。但如果它太复杂,我可能不知道我在想什么谷歌。
感谢您的帮助
答案 0 :(得分:0)
在某些版本的DOS中,您可以使用set命令上的/ p参数将文件内容加载到变量中。
set /p point=<a.txt
其中a.txt包含您要将“point”变量设置为的值。
答案 1 :(得分:0)
为数据“生存”的最佳方式是文件。
您可以使用以下命令将变量写入文件:
echo %variable%>filename.txt
并用
读回来set /p variable=<filename.txt
使用单行(例如一个变量)可以正常工作。这种方法可以扩展几行。如果你想保存许多(或未知数量)的行,有更好的方法。
答案 2 :(得分:0)
感谢您的回复。我没有看过/ 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数量并删除旧文件? 我很高兴删除旧备份,我只是对未来的项目感到好奇