If statement 如果出现错误,请批处理文件
好的,我正在做一个项目,我正在做这件事,我在confirmOne中得到了if语句,它给了我一个在这个时候没有预料到的结果。请帮助 许多错误的“You got to here!”消息是我试图调试它时发出的。我真的很快就需要它。请帮助。我也尝试过删除部分,但它似乎仍然不起作用。如果您看到任何其他错误,请告诉我,因为我需要所有可以得到的帮助。谢谢If statement 如果出现错误,请批处理文件,if-statement,batch-file,cmd,batch-processing,If Statement,Batch File,Cmd,Batch Processing,好的,我正在做一个项目,我正在做这件事,我在confirmOne中得到了if语句,它给了我一个在这个时候没有预料到的结果。请帮助 许多错误的“You got to here!”消息是我试图调试它时发出的。我真的很快就需要它。请帮助。我也尝试过删除部分,但它似乎仍然不起作用。如果您看到任何其他错误,请告诉我,因为我需要所有可以得到的帮助。谢谢 :grabInput echo Please enter the username of the user you wish to access. REM
:grabInput
echo Please enter the username of the user you wish to access.
REM - } End Echoing Information/Main Menu | Grab Input {
set /p result=
goto correctName
REM - } End Grab Input | Process Input {
:correctName
set /p input=%result%
goto confirmOne
:confirmOne
echo Got to confirmOne
pause
if %input%==[] (
pause
cls
echo Oops! Looks like you didn't enter anything! Try Agian!
echo.
echo ................................................................................
echo.
goto grabInput
) ELSE (
goto confirmTwo
)
:confirmTwo
echo Got to ConfirmTwo
pause
if %input%==~help (
goto helpMenu
) ELSE (
goto confirmThree
)
:confirmThree
echo Got to ConfirmThree
if %input%==~info (
goto infoMenu
) ELSE (
goto swapDrive
)
好的,如果您没有为
%input%
输入任何内容,那么您的if
语句看起来就像if=[](
)
您的if
语句应该类似于if[%input%]=[](
我还看到了很多不必要的代码,您应该查看一下您的脚本。批处理始终适用于字符串 如果%input%=[],当%input%设置为[nothing](这是您尝试检测的内容)时,使用语句
,批处理将[nothing]替换为%input%
,并获取
IF ==[] (
因为“(”不是比较运算符,所以会混淆
[]
不是什么魔咒。它是一种检测参数存在的旧方法,如果参数不存在[%1]将等于[]。当变量包含空格或其他字符时,它不起作用
if "%var%"=="" is better
if not defined var is better still
注意
set /p var=
不会将var
设置为[nothing],只需按enter
,它将保持var
不变
因此
set var=something
set /p var=
将var
设置为something
set "var="
set /p var="Some prompt "
if not defined var echo VAR is not defined
var=
周围的引号确保,如果行上有尾随空格,则var
不会设置为[某些空格]
除此之外,序列
goto somelabel
:somelabel
(REM线不相关)是多余的
同样地,在
if somecondition (goto somewhere) else (goto somewhereelse)
:somewhereelse
else
条件是多余的
仅批处理通知:标签作为转到或呼叫的目的地。否则,只需通过它发现的任何:标签直接收费,就好像它们是备注语句一样