Batch file 如何在批处理if语句后使用goto

Batch file 如何在批处理if语句后使用goto,batch-file,if-statement,goto,Batch File,If Statement,Goto,我确信这个问题已经被问到了,或者说是显而易见的,但我似乎找不到答案!我正在批量制作一种空闲的点击器游戏,我被困在升级页面。我的想法是,我希望玩家按enter键赚钱,然后键入“upg”进入升级页面。我得到了一个错误,表示此时无法识别goto命令。然后脚本关闭。以下是我所拥有的: @echo off title HackerClicker 1.2.1 color 0a :start set /a mon = 0 echo HkrAssociation Hack protocal v. 1.2.1

我确信这个问题已经被问到了,或者说是显而易见的,但我似乎找不到答案!我正在批量制作一种空闲的点击器游戏,我被困在升级页面。我的想法是,我希望玩家按enter键赚钱,然后键入“upg”进入升级页面。我得到了一个错误,表示此时无法识别goto命令。然后脚本关闭。以下是我所拥有的:

@echo off
title HackerClicker 1.2.1
color 0a
:start
set /a mon = 0 
echo HkrAssociation Hack protocal v. 1.2.1
echo 2015 HkrAssociation. All rights reserved.
echo.
echo press and hold enter in hack routine to auto-hack and gain money
echo.
set /p= "PRESS ANY KEY TO START ROUTINE"
goto routine

:routine
cls
echo Hack Routine v. 1.2.1
echo. 
echo Balance: $%mon%
echo.
echo Type "upg" to go to upgrades
echo.
set /p cmd= "C:\users\h@ck3r\hack_routine>"
set /a mon = %mon% + 1
if %cmd%= upg GOTO upgrades
goto routine

:upgrades
echo more here later
set /p=

谢谢大家!

在批处理中,一个等号用于赋值,两个等号用于比较。因此,您需要使用两个等号来查看%cmd%是否为“upg”:


这可以用于升级,但当我按enter键添加到money时,它只会关闭批处理脚本。有办法解决这个问题吗?非常感谢。
:例程中没有允许用户输入的内容。这里只有
cls
echo
set
命令,直到到达
if
语句。这与发布的问题完全不同。我为这个问题提供了一个解决方案,你需要发布另一个关于如何在批处理脚本中获取用户输入的问题(在你研究它之后,因为这个问题已经被问了无数次,你没有试图做任何与之前的5000万程序员不同的事情)。好的,我很抱歉。无论如何,谢谢你。你的回答帮了大忙。不需要道歉——只是想帮忙——用户输入的东西太多了,无法在评论中提及,而且我也没有什么新的东西可以写出来。
if %cmd%==upg GOTO upgrades