Batch file 如何更改批处理中指定给变量的文本

Batch file 如何更改批处理中指定给变量的文本,batch-file,Batch File,因此,我在更改使用set/a指定的文本时遇到问题 这是我的剧本 :wep cls if %gold% lss 50 ( echo not enough gold pause >nul goto shop ) if %weap%==Stick ( echo too low on level pause >nul goto shop ) if %wepugrd% lss 1 ( echo You don't have any upgrades pause goto shop ) cls

因此,我在更改使用set/a指定的文本时遇到问题 这是我的剧本

:wep
cls
if %gold% lss 50 (
echo not enough gold
pause >nul
goto shop
)
if %weap%==Stick (
echo too low on level
pause >nul
goto shop
)
if %wepugrd% lss 1 (
echo You don't have any upgrades
pause
goto shop
)
cls
echo Your Weapon is Being Upgraded
echo.
echo WAIT A FEW SECONDS
ping localhost -n 3 >nul
set /a weapdmg=%weapdmg% + 5
set /a weap=Stick
set /a wepugrd=%wepugrd% - 1
set /a gold=%gold% - 50
echo weapon upgraded
pause
goto shop
最后一部分已设置/a weap=斗杆 那是早些时候 但它只是将fist更改为0,而不是将其更改为stick 我能得到一些帮助吗 thanx使用以下代码:

:wep
cls
if %gold% lss 50 (
    echo not enough gold
    pause >nul
    goto shop
)
if "%weap%"=="Stick" (
    echo too low on level
    pause >nul
    goto shop
)
if %wepugrd% lss 1 (
    echo You don't have any upgrades
    pause
    goto shop
)
cls
echo Your Weapon is Being Upgraded
echo.
echo WAIT A FEW SECONDS
%SystemRoot%\System32\ping.exe localhost -n 3 >nul
set /a weapdmg+=5
set "weap=Stick"
set /a wepugrd-=1
set /a gold-=50
echo weapon upgraded
pause
goto shop
如前所述,开关
/A
仅用于算术运算,如果仅为变量分配一个字符串,则不能使用该开关

向现有值添加或减去整数也可以使用上面演示的简短形式


并以双引号括住
weap=Stick

set weap=Stick
-/a开关仅用于算术运算。