Batch file 如何在批处理文件中获取文件变量
让我们想象一下,当我们编辑得到的文件时,批处理游戏会将您的进度保存在file.bat文件中:Batch file 如何在批处理文件中获取文件变量,batch-file,variables,command,Batch File,Variables,Command,让我们想象一下,当我们编辑得到的文件时,批处理游戏会将您的进度保存在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
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%
它留下空白
但是,如果我制作了一个如上所述的文件,但删除了集合(只有Health=100和swaph=Gold而没有集合),它可以工作,并给我变量Health和swaph,但是当集合命令添加时,它不起作用,如果有人知道解决方案,请告诉我,谢谢
我需要一个命令来提供变量,我不想从文件中删除set
命令,因为如果我这样做了,保存bat文件的游戏将在从文件中提取变量以继续游戏之前的位置时损坏。游戏生成提示:
如果您保留一个字符作为要保存的变量的前缀(例如,我要保存/重新加载的所有变量从#
开始),则保存游戏所需的全部内容是
set #>"mygamefile.txt"
for /f "usebackqdelims=" %%a in ("mygamefile.txt") do set "%%a"
你只需要重新加载一个游戏
set #>"mygamefile.txt"
for /f "usebackqdelims=" %%a in ("mygamefile.txt") do set "%%a"
要清除所有
变量(在重新加载游戏之前很有用),请使用
如果set命令在文件中,您实际上是在执行set“set Health=100”
,简单地说就是)do%%a
,那么我将把命令更改为这个对于/f“eol=-delims=“(file.bat)中的%%a做“%%a”
我只会使用不带引号的%%a
。非常感谢@LotPings您真的帮助了我:)删除中的集
),设置“%%a”
。作为一种替代方法,您可以(echo@echo off&set)>“mygamefile.bat”
,只需重新加载:call”mygamefile.bat“
@stephan请解释您的推理。代码与发布的代码完全一样。文本文件包含类似设置健康=100
的行(请参阅问题的注释)。您添加了另一个set
@Stephan OP的方法过于复杂。我建议的方法取代了该方法。我同意,但OP明确表示“我不想从文件中删除set命令。”`