批处理脚本一旦完成就会关闭,因为这就是批处理脚本的功能。一旦脚本没有更多代码可以运行,窗口就会关闭。如果要保持窗口打开,可以使用pause
命令或从命令提示符运行脚本,而不是双击它。
您=
在命令末尾缺少 a set /p
,这是导致“命令的语法不正确”错误的原因。
在比较字符串时,通常认为使用引号、括号或其他字符是个好主意,以防用户在enter
没有输入任何内容的情况下点击。就像 Serenity 提到的那样,如果您可以选择使用该choice
命令,请使用它,因为它更强大。
""
在命令之后立即使用也被认为是一种好习惯start
,以防万一您需要启动需要用引号括起来的东西;start
认为引号中的第一件事是窗口标题,然后是命令。可以想象,这有可能破坏您的代码。
因此,总而言之:
@echo off
title Search Providers
cls
:home
echo [1] Google
echo [2] Bing
echo [3] Yahoo
set /p udefine=
:: Ideally there's some sort of error handling here as well
if "%udefine%"=="1" start "" www.google.com
if "%udefine%"=="2" start "" www.bing.com
if "%udefine%"=="3" start "" www.yahoo.com
pause