Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Windows 当我创建一个可加载的保存文件时,它会批量添加空间!为什么会这样?_Windows_Batch File_Cmd - Fatal编程技术网

Windows 当我创建一个可加载的保存文件时,它会批量添加空间!为什么会这样?

Windows 当我创建一个可加载的保存文件时,它会批量添加空间!为什么会这样?,windows,batch-file,cmd,Windows,Batch File,Cmd,我唯一的问题是当涉及批处理文件中的数字时,假设我们正在将它们写入一个保存文件,以便稍后使用以下命令加载echo Variable=%Var%>>Variable.bat 现在这一切都很酷,但我注意到了一些事情 首先,如果%Var%是一个数字,那么我就不能写%Var%>,因为如果没有这个空格,那么它就会被写成变量=,这与我现在加载它时的数字无关,如果我不能没有空格,那么我必须有空格,它是这样的变量=%Var%%Var%是7,例如,我将在其周围放上括号,以显示每次保存和加载时发生的情况。下划线将显示

我唯一的问题是当涉及批处理文件中的数字时,假设我们正在将它们写入一个保存文件,以便稍后使用以下命令加载
echo Variable=%Var%>>Variable.bat

现在这一切都很酷,但我注意到了一些事情

首先,如果
%Var%
是一个数字,那么我就不能写
%Var%>
,因为如果没有这个空格,那么它就会被写成
变量=
,这与我现在加载它时的数字无关,如果我不能没有空格,那么我必须有空格,它是这样的
变量=%Var%
%Var%
是7,例如,我将在其周围放上括号,以显示每次保存和加载时发生的情况。下划线将显示空格
(变量=7)(变量=7)(变量=7)

现在,我将向您展示一些代码,这些代码在实际操作中显示了这一点,我将有目的地在数字后面张贴文字,以便您每次在提示屏幕中查看时都能看到文字的实际移动

当你运行这个程序时,空间不断累积,我不知道如何删除空间

粗蝙蝠 粗蝙蝠 试试这个:

:: ___________________________________________________________________________

:: Gruff.Bat
:: ___________________________________________________________________________

@echo off
color 0D
title Something

>blah.bat (
    echo @echo off
    echo color 0D
    echo title Something
    echo set Character=Monstrous Bunny
    echo set Name=BBQ Chips
    echo set ID=%Random%
    echo set LV=5
    echo set Money=1234567890
    echo set Rings=3
    echo set Weapons=21
    echo set Armors=14
    echo set Runes=2
    echo set HP=100
    echo set ATK=25
    echo set DEF=5
    echo set ArmorPen=10
    echo set BaseDEF=5
    echo set Heal=10
    echo set Gold=298736
    echo set STAM=10
    echo set Mana=15
    echo set Spells=2
    echo set Counter=0
    echo Call Gruff2.bat
)
Set /a Counter+=1
Start blah.bat
exit

:: ___________________________________________________________________________

:: Gruff2.Bat
:: ___________________________________________________________________________

@echo off
color 0D
title Character Viewer
cls
echo ID#%ID% Level %LV% %Character% %Name%
echo.
echo STATS
echo %HP% HP, %ATK% Attack, %DEF% Defense, %STAM% Stamina, %Mana% Mana
echo.
echo OTHER STATS
echo %ArmorPen% Armor Penetration, %BaseDEF% Base Defense
echo.
echo %Money% Money, %Gold% Gold
echo %Rings% Rings, %Runes% Runes, %Weapons% Weapons, %Armors% Armors
echo.
echo SPECIAL ABILITIES
echo %Heal% Pts of Heal per Quarter Minute, %Spells% Spells Known
echo You Have Saved The Game %Counter% Times!

>blah.bat (
    echo @echo off
    echo color 0D
    echo title Something
    echo set Character=%Character%
    echo set Name=%Name%
    echo set ID=%ID%
    echo set LV=%LV%
    echo set Money=%Money%
    echo set Rings=%Rings%
    echo set Weapons=%Weapons%
    echo set Armors=%Armors%
    echo set Runes=%Rings%
    echo set HP=%HP%
    echo set ATK=%ATK%
    echo set DEF=%DEF%
    echo set ArmorPen=%ArmorPen%
    echo set BaseDEF=%BaseDEF%
    echo set Heal=%Heal%
    echo set Gold=%Gold%
    echo set STAM=%STAM%
    echo set Mana=%Mana%
    echo set Spells=%Spells%
    echo set Counter=%Counter%
    echo Call Gruff2.bat
)
Set /a Counter+=1
pause
Call blah.bat
试试这个:

:: ___________________________________________________________________________

:: Gruff.Bat
:: ___________________________________________________________________________

@echo off
color 0D
title Something

>blah.bat (
    echo @echo off
    echo color 0D
    echo title Something
    echo set Character=Monstrous Bunny
    echo set Name=BBQ Chips
    echo set ID=%Random%
    echo set LV=5
    echo set Money=1234567890
    echo set Rings=3
    echo set Weapons=21
    echo set Armors=14
    echo set Runes=2
    echo set HP=100
    echo set ATK=25
    echo set DEF=5
    echo set ArmorPen=10
    echo set BaseDEF=5
    echo set Heal=10
    echo set Gold=298736
    echo set STAM=10
    echo set Mana=15
    echo set Spells=2
    echo set Counter=0
    echo Call Gruff2.bat
)
Set /a Counter+=1
Start blah.bat
exit

:: ___________________________________________________________________________

:: Gruff2.Bat
:: ___________________________________________________________________________

@echo off
color 0D
title Character Viewer
cls
echo ID#%ID% Level %LV% %Character% %Name%
echo.
echo STATS
echo %HP% HP, %ATK% Attack, %DEF% Defense, %STAM% Stamina, %Mana% Mana
echo.
echo OTHER STATS
echo %ArmorPen% Armor Penetration, %BaseDEF% Base Defense
echo.
echo %Money% Money, %Gold% Gold
echo %Rings% Rings, %Runes% Runes, %Weapons% Weapons, %Armors% Armors
echo.
echo SPECIAL ABILITIES
echo %Heal% Pts of Heal per Quarter Minute, %Spells% Spells Known
echo You Have Saved The Game %Counter% Times!

>blah.bat (
    echo @echo off
    echo color 0D
    echo title Something
    echo set Character=%Character%
    echo set Name=%Name%
    echo set ID=%ID%
    echo set LV=%LV%
    echo set Money=%Money%
    echo set Rings=%Rings%
    echo set Weapons=%Weapons%
    echo set Armors=%Armors%
    echo set Runes=%Rings%
    echo set HP=%HP%
    echo set ATK=%ATK%
    echo set DEF=%DEF%
    echo set ArmorPen=%ArmorPen%
    echo set BaseDEF=%BaseDEF%
    echo set Heal=%Heal%
    echo set Gold=%Gold%
    echo set STAM=%STAM%
    echo set Mana=%Mana%
    echo set Spells=%Spells%
    echo set Counter=%Counter%
    echo Call Gruff2.bat
)
Set /a Counter+=1
pause
Call blah.bat

最简单的方法可能是将所有
set
命令更改为
set/a
,这将导致忽略空格

如果您正在加载/卸载一组已定义的变量,那么一个简单的技巧就是使用诸如“#”之类的通用前缀命名每个需要保存/重新加载的变量

要保存您的数据,请执行以下命令:

set #>filename
将所有以
#
开头的变量以

#var1=value1
#var2=value2
并重新加载

for /f "delims=" %%a in (filename) do set "%%a"
执行

set "#var1=value1"
set "#var2=value2"

最简单的方法可能是将所有
set
命令更改为
set/a
,这将导致忽略空格

如果您正在加载/卸载一组已定义的变量,那么一个简单的技巧就是使用诸如“#”之类的通用前缀命名每个需要保存/重新加载的变量

要保存您的数据,请执行以下命令:

set #>filename
将所有以
#
开头的变量以

#var1=value1
#var2=value2
并重新加载

for /f "delims=" %%a in (filename) do set "%%a"
执行

set "#var1=value1"
set "#var2=value2"

谢谢Compo和其他所有人,我们终于使这件事成为一个团队!我已经在我的一些游戏中实现了我们在这里所做的一些事情,到目前为止,一切似乎都很好3喵喵!祝你们大家好


粗蝙蝠



粗蝙蝠



谢谢Compo和其他所有人,我们终于使这件事成为一个团队!我已经在我的一些游戏中实现了我们在这里所做的一些事情,到目前为止,一切似乎都很好3喵喵!祝你们大家好


粗蝙蝠



粗蝙蝠



我的眼睛。。。。。请使用ctrl+k将代码放在代码示例块中。可能会重复将语法
echo set LV=5>>blah.bat
更改为
>blah.bat echo set LV=5
;否则,
>
之前的空格将被
回显并重定向;(不要使用此选项:
echo set LV=5>>blah.bat
(空格已删除,但
5>
意味着指定重定向句柄--请参见))…我的眼睛不仅因为这么多空行而痛,而且因为5行句子而头晕,我仍然无法理解你说的话我的眼睛。。。。。请使用ctrl+k将代码放在代码示例块中。可能会重复将语法
echo set LV=5>>blah.bat
更改为
>blah.bat echo set LV=5
;否则,
>
之前的空格将被
回显并重定向;(不要使用这个:
echo set LV=5>>blah.bat
(空格已删除,但
5>
意味着指定重定向句柄--请参见))…不仅因为有这么多空行,我的眼睛很痛,而且因为五行句子,我仍然听不懂你说的话,我的头也会旋转。你知道,这仍然会在大多数行中添加空格吗?(它们仍然是代码的一部分)您是否知道,这仍然会在大多数行中添加空格?(它们仍然是代码的一部分)答案文本框上方是一些格式符号。他们也用他们的工具提示提示:人不能单靠拥抱生活!通过使用我的答案,你已经有效地接受了对你问题的回答。因此,我相信你会适当地接受我的答案,这样我也会得到相应的网站奖励。Compo,我是单身,如果你愿意,我给你的不仅仅是拥抱和亲吻,如果你愿意,我们可以一起私奔,一起抚养一个家庭等等。^ ^答案文本框上方是一些格式符号。他们也用他们的工具提示提示:人不能单靠拥抱生活!通过使用我的答案,你已经有效地接受了对你问题的回答。因此,我相信你会适当地接受我的回答,这样我也会得到相应的网站奖励。Compo,我是单身,如果你愿意,我给你的不仅仅是拥抱和亲吻,如果你愿意,我们可以一起私奔,一起养家糊口等等^_^