首页 > 解决方案 > 如何在批处理文件中获取文件变量

问题描述

让我们想象一个 Batch 游戏将您的进度保存在 file.bat 文件中,当我们编辑该文件时,我们得到:

set Health=100
set Sword=Gold

我在批处理文件中使用了这个命令,但它不起作用:

for /f "eol=- delims=" %%a in (file.bat) do set "%%a"
echo Your health is %Health%
echo Your sword is made of %Sword%

它留空。

但是如果我制作了一个像上面这样的文件但删除了set(只有 Health=100 和 Sword=Gold 没有设置),它可以工作并给我变量 Health 和 Sword,但是当set添加命令时它不起作用,如果有的话知道解决方案请告诉我,谢谢!

我想要一个给我变量的命令,我不想只是set从文件中删除命令,因为如果我这样做了,保存 bat 文件的游戏将在从文件中提取变量以继续你离开的地方时损坏游戏。

标签: batch-filevariablescommand

解决方案


游戏生成提示:

如果您保留一个字符作为您想要保存的变量的前缀(例如,我想要保存/重新加载的所有变量都以 开头#),那么您保存游戏所需的一切就是

set #>"mygamefile.txt"

重新加载游戏所需要做的就是

for /f "usebackqdelims=" %%a in ("mygamefile.txt") do set "%%a"

要删除所有#变量(在重新加载游戏之前很有用),请使用

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

推荐阅读