Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在批处理文件中获取文件变量_Batch File_Variables_Command - Fatal编程技术网

Batch file 如何在批处理文件中获取文件变量

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% 它留下空白 但是,如果我制作了一个如上所述的文件,但删除了集

让我们想象一下,当我们编辑得到的文件时,批处理游戏会将您的进度保存在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%
它留下空白

但是,如果我制作了一个如上所述的文件,但删除了
集合(只有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命令。”`