如何创建基于文本文件内容(批处理文件)设置的变量

时间:2017-05-15 02:09:59

标签: batch-file cmd

好的,所以我有一些代码,它将一些数字写入文本文件。

echo 1 >> "C:\Users\Slots\Slot1\charlv.txt"
echo 0 >> "C:\Users\Slots\Slot1\chardeaths.txt"
echo 0 >> "C:\Users\Slots\Slot1\charexp.txt"
echo 0 >> "C:\Users\Slots\Slot1\chareqp1.txt"
echo 0 >> "C:\Users\Slots\Slot1\chareqp2.txt"
echo 0 >> "C:\Users\Slots\Slot1\chareqp3.txt"

现在,我想要做的是根据这些文本文件中的内容创建变量。我的理由是创建一个保存文件,这样一旦程序关闭,所需的变量就可以回来了。

我有一些代码,我认为它可以工作,应该根据文本文件内部设置变量,但它只将变量设置为" 0",甚至" LV"应该设置为" 1"。

set /a "LV=C:\Users\Slots\Slot1\charlv.txt"
set /a "DEATHS=C:\Users\Slots\Slot1\chardeaths.txt"
set /a "EXP=C:\Users\Slots\Slot1\charexp.txt"
set /a "EQP1=C:\Users\Slots\Slot1\chareqp1.txt"
set /a "EQP2=C:\Users\Slots\Slot1\chareqp2.txt"
set /a "EQP3=C:\Users\Slots\Slot1\chareqp3.txt"

有人可以告诉我上一段代码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

set /a正在尝试评估文件名,这没有任何意义。

set/p var=<filename

可能适合你。

由于这似乎是一场游戏,我建议

  • 声明以相同字符序列开头的所有可保存变量,例如#

然后,您的game save命令就是

set #>filename

并且您的game reload例程

for /f "delims==" %%a in ('set # 2^>nul') do set "%%a="
for /f "delims=" %%a in (filename) do set "%%a"

第一行清除当前游戏变量,第二行从文件重新加载。