批处理字符串中的空格

时间:2019-05-06 23:57:33

标签: batch-file

我想创建一个随机附魔武器发生器。但是,当随机选择带有空格的附魔时,批处理文件偶尔会关闭。

我已经尝试过将字符串放在引号中,但是当我使用变量来显示字符串时,该字符串带有引号。 例如:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section id="home" class="scroller">Home</section>
<section id="pricing" class="scroller">Pricing</section>
<section id="discord" class="scroller">Discord</section>
<div class="log">Log goes here</div>

但是当我显示%结界%时,它的出现是“吸收健康”而不是吸收健康。

我也尝试过将变量放在引号中,但这似乎无法解决问题。

if %enchantment% == 1 set enchantment="Health Absorbing"

到目前为止,这是我的代码的较小版本:

if %enchantment% == 30 set "enchantment=Health Absorbing"

我希望代码能够在每次按下按钮时显示带有随机武器的随机结界。但是,该代码只会在意外关闭之前执行1-10次。

1 个答案:

答案 0 :(得分:0)

在比较的两边都使用引号。这样,变量的内容将被视为单个项目。但是,您必须在==的另一边加上引号,因为引号包含在比较中。

@echo off

:Weapon
set /a weapon=%random% %% 3 + 1
if "%weapon%"=="1" set weapon=Battleaxe
if "%weapon%"=="2" set weapon=Sword
if "%weapon%"=="3" set weapon=Mace

:Enchant
set /a enchantmenttype=%random% %% 2 + 1
if "%enchantmenttype%"=="1" goto Enchant1
if "%enchantmenttype%"=="2" goto Enchant2

:Enchant1
set /a enchantment=%random% %% 3 + 1
if "%enchantment%"=="1" set enchantment=Flaming
if "%enchantment%"=="2" set enchantment=Holy
if "%enchantment%"=="3" set enchantment=Frozen
set "EW=%enchantment% %weapon%"
goto EW

:Enchant2
set /a enchantment=%random% %% 3 + 1
if "%enchantment%"=="1" set "enchantment=the Fire Spirit"
if "%enchantment%"=="2" set "enchantment=the Frozen Spirit"
if "%enchantment%"=="3" set "enchantment=the Phantom Spirit"
set "EW=%weapon% of %enchantment%"
goto EW

:EW
echo %EW%
pause >nul
goto Weapon