Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 批次设置/a“;“失踪操作员”;_Batch File - Fatal编程技术网

Batch file 批次设置/a“;“失踪操作员”;

Batch file 批次设置/a“;“失踪操作员”;,batch-file,Batch File,为什么当我在游戏中这么做的时候它会起作用 set /a Monster=%random% * 2 / 32768 + 1 但是这个没有 (注:MHP=10,损伤处理=5) 当我运行第二个时,它显示“缺少操作员”。 但是如果我运行两次,它只会显示一次 这里有一个更大的讽刺: :FightExplora if %HP%=<0 goto GAMEOVERExplora if %MHP%=<0 goto FightEndExplora cls echo HP: %HP%/%MaxHP%

为什么当我在游戏中这么做的时候它会起作用

set /a Monster=%random% * 2 / 32768 + 1
但是这个没有 (注:MHP=10,损伤处理=5)

当我运行第二个时,它显示“缺少操作员”。 但是如果我运行两次,它只会显示一次

这里有一个更大的讽刺:

:FightExplora
if %HP%=<0 goto GAMEOVERExplora
if %MHP%=<0 goto FightEndExplora
cls
echo HP: %HP%/%MaxHP%     Str: %Strength%     XP:%XP%/%LVUP%     LV: %LV%     
$%Money%
echo.
echo You encountered a %Monster%!
echo Monster -- HP: %MHP%/%MaxMHP%     Str: %MonsterSTR%
echo.
echo [1-Attack] [2-Heal]
set /p Action="What will you do? > "
echo.
if %Action%==1 (
set /a DamageDealt=%random% * %Strength% / 32768 + 1
set /a MHP=%MHP% - %DamageDealt%
echo You did %DamageDealt% to the %Monster%
goto EnemyTurnExplora
)
if %Action%==2 (
set /a HealAMT=%random% * %MaxHP% / 32768 + (%MaxHP% / %Strength%)
set HP=%HealAMT%
if %HP% => %MaxHP% set %HP%=%MaxHP%
echo You healed %HealAMT% HP
goto EnemyTurnExplora
)
:EnemyTurnExplora
echo.
pause >nul
::Enemy Damage
echo.
set /a DamageTaken=%random% * %MonsterSTR% / 32768 + 1
set /a HP=%HP% - %DamageTaken%
echo The %Monster% dealt %DamageTaken% to you.
echo.
pause >nul
goto FightExplora
:FightExplora
如果%HP%=%MaxHP%设置为%HP%=%MaxHP%
回声你治愈了%HealAMT%HP
去Enemyturna
)
:Enemyturna
回声。
暂停>nul
::敌人的损失
回声。
set/a damagetake=%random%*%MonsterSTR%/32768+1
设置/a HP=%HP%-%DamageTake%
回显%Monster%对你造成的%DamageTake%。
回声。
暂停>nul
goto FightExplora

另外,当您说要修复时,命令窗口将关闭,我不知道为什么…

不要使用
%Variable%
语法在算术表达式中展开环境变量,因为当引用的环境变量在同一命令块中定义或修改时,这在命令块中不起作用。还使用引用语法延迟了扩展
!变数

在命令提示窗口中运行
set/?
,仔细阅读解释算术表达式和延迟展开的输出帮助。正如您在学习帮助时所读到的,您可以简单地使用:

set /A MHP-=DamageDealt
表达式中的任何非数字字符串都被视为环境变量名称,其值在使用之前会转换为数字。如果指定了环境变量名称,但未在当前环境中定义,则使用零值。这允许您对环境变量值进行算术运算,而不必键入所有这些%符号来获取它们的值

使用时出错的原因:

 set /a MHP=%MHP% - %DamageDealt%
展开环境变量时未定义环境变量
MHP
damagedeposed
,或两者都未定义,结果是执行以下3个命令行之一:

 set /a MHP= - 50
 set /a MHP= 200 -
 set /a MHP= -
使用以下工具时不会出现这种情况:

set /A MHP=MHP - DamageDealt
set /A MHP-=DamageDealt

如果在表达式求值时引用的环境变量根本不存在,则等号右侧的每个环境变量名称将替换为0。

请勿使用
%variable%
语法在算术表达式中展开环境变量,因为当引用的环境变量在同一命令块中定义或修改。还使用引用语法延迟了扩展
!变数

在命令提示窗口中运行
set/?
,仔细阅读解释算术表达式和延迟展开的输出帮助。正如您在学习帮助时所读到的,您可以简单地使用:

set /A MHP-=DamageDealt
表达式中的任何非数字字符串都被视为环境变量名称,其值在使用之前会转换为数字。如果指定了环境变量名称,但未在当前环境中定义,则使用零值。这允许您对环境变量值进行算术运算,而不必键入所有这些%符号来获取它们的值

使用时出错的原因:

 set /a MHP=%MHP% - %DamageDealt%
展开环境变量时未定义环境变量
MHP
damagedeposed
,或两者都未定义,结果是执行以下3个命令行之一:

 set /a MHP= - 50
 set /a MHP= 200 -
 set /a MHP= -
使用以下工具时不会出现这种情况:

set /A MHP=MHP - DamageDealt
set /A MHP-=DamageDealt

如果在表达式求值时引用的环境变量根本不存在,则等号右侧的每个环境变量名称都将替换为0。

这对我适用,但如果您拼错了其中一个变量名称,则可能会收到此消息。请记住,
set
命令的
=
周围不能有空格。这是否在括号内?你可能需要延迟扩展。我又做了一次,它说“缺少操作数”。。。这是什么意思?编辑:突然之间。。。它又开始工作了。。。Wierd.您的代码段有很多问题,主要是您以前应该使用
SetLocal enabledayedexpansion
启用延迟扩展,并在
中引用
%damagedealed%
%HealAMT%
作为
块!破坏
!希拉姆特分别为。另外,请尝试使用GEQ和LEQ,而不是不正确的
=>
=这对我来说很有效,但是如果您拼错了其中一个变量名,则可能会收到此消息。请记住,
set
命令的
=
周围不能有空格。这是否在括号内?你可能需要延迟扩展。我又做了一次,它说“缺少操作数”。。。这是什么意思?编辑:突然之间。。。它又开始工作了。。。Wierd.您的代码段有很多问题,主要是您以前应该使用
SetLocal enabledayedexpansion
启用延迟扩展,并在
中引用
%damagedealed%
%HealAMT%
作为
块!破坏
!希拉姆特分别为。还可以尝试使用GEQ和LEQ,而不是不正确的
=>
=