Batch file 在bat文件中检测[输入]键
我给我的用户几个选项,然后等待他们的输入。在我的测试中,当我按下[Enter]键并输入任何选项时,程序将崩溃并烧掉。它给了我一个错误”(此时出乎意料)。我如何检测用户是否只按[Enter]键 这是我的Batch file 在bat文件中检测[输入]键,batch-file,batch-processing,Batch File,Batch Processing,我给我的用户几个选项,然后等待他们的输入。在我的测试中,当我按下[Enter]键并输入任何选项时,程序将崩溃并烧掉。它给了我一个错误”(此时出乎意料)。我如何检测用户是否只按[Enter]键 这是我的 :pickClient set clientNum= cls echo. echo Pick a Client echo. echo. echo 1. Client 1 echo. echo 2. Client 2 echo. echo. echo [E] - EXIT echo
:pickClient
set clientNum=
cls
echo.
echo Pick a Client
echo.
echo.
echo 1. Client 1
echo.
echo 2. Client 2
echo.
echo.
echo [E] - EXIT
echo.
set /p clientNum=Input selection.
if %clientNum%==1 (
set client=client1Name
) else if %clientNum%==2 (
set client=client2Name
) else if /i %clientNum%==E (
GOTO goAway
) else if %clientNum%==" " (
GOTO pickClient
) else (
GOTO pickClient
)
我知道了!我就是这么做的
set clientNum=
cls
echo.
echo Pick a Client
echo.
echo.
echo 1. Client 1
echo.
echo 2. Client 2
echo.
echo.
echo [E] - EXIT
echo.
set /p clientNum=Input selection.
IF NOT DEFINED clientNum GOTO pickClient <---I added this line of code. *****
if %clientNum%==1 (
set client=client1Name
) else if %clientNum%==2 (
set client=client2Name
) else if /i %clientNum%==E (
GOTO goAway
) else if %clientNum%==" " (
GOTO pickClient
) else (
GOTO pickClient
)
注意这些引语。通过投票支持他的意见,给他一些爱。我非常感激。我明白了!以下是我所做的
set clientNum=
cls
echo.
echo Pick a Client
echo.
echo.
echo 1. Client 1
echo.
echo 2. Client 2
echo.
echo.
echo [E] - EXIT
echo.
set /p clientNum=Input selection.
IF NOT DEFINED clientNum GOTO pickClient <---I added this line of code. *****
if %clientNum%==1 (
set client=client1Name
) else if %clientNum%==2 (
set client=client2Name
) else if /i %clientNum%==E (
GOTO goAway
) else if %clientNum%==" " (
GOTO pickClient
) else (
GOTO pickClient
)
请注意引号。通过向上投票他的输入给ths一些爱。我非常感激。如果您只需按enter键,变量为空,您的比较结果为空
if %clientNum%==1 (
变成
if ==1 (
这是非法的。为了防止出现此类问题或变量值中出现空格,请务必在if
中的变量和值周围加引号:
if "%clientNum%"=="1" (
然后变成
if ""=="1" (
这是一条有效的语句。如果您只需按enter键,则变量为空,您的比较结果为空
if %clientNum%==1 (
变成
if ==1 (
这是非法的。为了防止出现此类问题或变量值中出现空格,请务必在if
中的变量和值周围加引号:
if "%clientNum%"=="1" (
然后变成
if ""=="1" (
这是一个有效的声明。谢谢@ths的帮助!我不知道引号。我对批处理非常陌生,因此非常感谢任何帮助。我将对批处理进行编辑。若要添加此内容,请使用“if”%clientNum%=“if”`是否需要检查变量是否已定义?谢谢@ths的帮助!我不知道引号。我对批处理非常陌生,因此非常感谢您的帮助。我将对批处理进行编辑。若要添加此内容,请使用`if”%clientNum%”==“”`是否需要检查变量是否已定义?请随意接受
ths
的答案-查看“帮助”菜单中的教程
。您可以使用if
和/i
参数来忽略大小写,从而缩短程序。谢谢@Stephan!感谢您的输入!我不知道帽子是可用的。我已经更新了我的代码以反映这一点。请随意接受ths
的答案-请参阅“帮助”菜单中的教程。您可以使用if
和/I
参数来忽略大写。谢谢@Stephan!感谢您的输入!我不知道这是ava我已经更新了我的代码来反映这一点。