从上一点继续批处理文件

时间:2015-07-16 23:21:25

标签: batch-file

我正在玩一个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

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

是否可以设置点=将变量保存到文件中以供下次运行?

您能解释一下建议的任何代码,我可以使用谷歌自己研究它,并可能会更好地理解。但如果它太复杂,我可能不知道我在想什么谷歌。

感谢您的帮助

3 个答案:

答案 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数量并删除旧文件? 我很高兴删除旧备份,我只是对未来的项目感到好奇