如何从批处理文件中保存变量然后加载它们以使用它们?

时间:2016-05-09 02:04:16

标签: batch-file

我是一个非常缺乏经验的编码器,我喜欢批处理,因为它是一种更直接的编码语言,但我想将多个变量保存为txt文件或其他格式,然后将这些相同的变量“加载”到批处理文件中键入,以便玩家可以看到,但我可以使用它

这是我到目前为止加载的内容:

:nick
cls
color 02
set /p nick= Enter your nickname: 
if exist ((savegame%nick%.txt) goto load)
goto instructions

:load
for /f "blevel=" %%a in (savegame%nick%.txt) do set blevel=%%a&goto loadexist
for /f "mlevel=" %%a in (savegame%nick%.txt) do set mlevel=%%a&goto loadexist
for /f "alevel=" %%a in (savegame%nick%.txt) do set alevel=%%a&goto loadexist

这就是我保存的原因:

:save
cls
echo Saving please wait...
(echo blevel=%blevel%)> savegame%nick%.txt
(echo mlevel=%mlevel%)>> savegame%nick%.txt
(echo alevel=%alevel%)>> savegame%nick%.txt
timeout /t 5 /nobreak >nul
exit

就像我说我很缺乏经验,我的目标是创造一个游戏,请随意指出任何缺陷。在我的游戏中,我有3个角色Brutus,Mediana和Achilles。 blevelmlevelalevel指的是游戏中您所在的位置以及您选择扮演的角色,因此您无需玩整个游戏你在哪里。

由于这显然仍在进行中,我只有一个实例,你可以保存它并在第一个Brutus承诺中:

:brutus 1
set blevel=1
cls
echo.
echo.
echo.
echo You chose brutus good choice but are you sure this is who you want?
echo 1) go back and choose 
echo 2) continue
echo 0) save
set /p c=C:\

if "%c%" == 1 goto choose character
if "%c%" == 2 goto brutus 2
if "%c%" == 0 goto save
goto brutus 1

因此,当您选择这样的选择时,您的各自级别会上升。每当我重新打开游戏时,当我输入我用来保存文件的昵称时,它会关闭cmd,或者它不起作用并跳过它,就像文件或其中的变量不存在一样。我的目的是在每个关键选择中对所有三个角色执行此操作,因此最终我可能每个角色至少有100个。

1 个答案:

答案 0 :(得分:0)

你的“保存”逻辑没问题。

要加载,您只需要一行:

for /f "delims=" %%i in (savegame%nick%.txt) do set "%%i"

当您使用echo on运行它时,您会看到它处理每一行并设置您的变量。

相关问题