batch file中的菜单

我通常不会创buildbatch file,因为我只需在运行框或命令提示符中键入需要的内容,但是我正在试图让我在Windows中访问基本实用程序,并检查一些事情(我真的不'不需要它,但我认为我的爸爸会觉得有帮助)。 我熟悉(但新)与Python,所以如果使用Python这些东西是一个更好的select,我可以做到这一点,但我认为批处理是做这样简单的事情的最好方法。 问题出在我的菜单上。 我想是因为我的菜单,在执行所选命令之前,它正在循环所有的命令。 任何与此有关的帮助将完全赞赏,批处理脚本在下面的代码框中。

echo off :menu echo This is a simple cleanup and repair utility. Please select an option: echo 1 - Check the hard disk c:\ for errors and inconsistancies. echo 2 - Renew the IP address echo 3 - View IP Address information echo 4 - Check internet connection by pinging http://www.google.co.uk/ echo 5 - Start disk cleanup utility echo 6 - ping 192.168.0.1 echo 7 - ping 192.168.1.1 echo 8 - Open notepad choice /n /c:12345678 /M "Choose an option (1-8) " IF ERRORLEVEL == 1 GOTO CHKDSK IF ERRORLEVEL == 2 GOTO RENEW IF ERRORLEVEL == 3 GOTO DISPLAYIP IF ERRORLEVEL == 4 GOTO PINGGOOGLE IF ERRORLEVEL == 5 GOTO CLEANMGR IF ERRORLEVEL == 6 GOTO PING0 IF ERRORLEVEL == 7 GOTO PING1 IF ERRORLEVEL == 8 GOTO STARTNOTE :CHKDSK CHKDSK C: PAUSE goto menu :RENEW IPCONFIG /RENEW PAUSE goto menu :DISPLAYIP IPCONFIG /ALL PAUSE goto menu :PINGGOOGLE PING HTTP://WWW.GOOGLE.CO.UK/ PAUSE goto menu :CLEANMGR CLEANMGR PAUSE goto menu :PING0 PING 192.168.0.1 PAUSE goto menu :PING1 PING 192.168.1.1 PAUSE goto menu :STARTNOTE START NOTEPAD PAUSE goto menu 

Solutions Collecting From Web of "batch file中的菜单"

将ErrorLevel部分更改为

 IF %ERRORLEVEL%==1 GOTO CHKDSK IF %ERRORLEVEL%==2 GOTO RENEW IF %ERRORLEVEL%==3 GOTO DISPLAYIP IF %ERRORLEVEL%==4 GOTO PINGGOOGLE IF %ERRORLEVEL%==5 GOTO CLEANMGR IF %ERRORLEVEL%==6 GOTO PING0 IF %ERRORLEVEL%==7 GOTO PING1 IF %ERRORLEVEL%==8 GOTO STARTNOTE goto menu 

请注意,if命令比较是空间敏感的,因此“0”==“0”不会相等。

错误级别有点有趣。 当你这样比较,它实际上检查数量是否小于或等于。 所以为了使它按照现在的方式工作,你需要反向排列测试。

另一种方法是使用环境变量:

 if "%errorlevel%"=="4" goto :PINGGOOGLE 

在所有测试之后放置goto :menu通常是个好主意,以防万一测试通过。 例如,如果用户按下Ctrl-C ,则错误级别为零。 在您的代码中(在您修复测试之后),它将进入:CHKDSK部分。

如果您根本不测试 errorlevel值,那么可以使用更简单的方法,但只是使用它来组装具有多个目标的goto命令。 为了使这个方法起作用,标签必须被改变,以便包含错误级别的值。

 echo off :menu echo This is a simple cleanup and repair utility. Please select an option: echo 1 - Check the hard disk c:\ for errors and inconsistancies. echo 2 - Renew the IP address echo 3 - View IP Address information echo 4 - Check internet connection by pinging http://www.google.co.uk/ echo 5 - Start disk cleanup utility echo 6 - ping 192.168.0.1 echo 7 - ping 192.168.1.1 echo 8 - Open notepad choice /n /c:12345678 /M "Choose an option (1-8) " GOTO LABEL-%ERRORLEVEL% :LABEL-1 CHKDSK CHKDSK C: PAUSE goto menu :LABEL-2 RENEW IPCONFIG /RENEW PAUSE goto menu :LABEL-3 DISPLAYIP IPCONFIG /ALL PAUSE goto menu :LABEL-4 PINGGOOGLE PING HTTP://WWW.GOOGLE.CO.UK/ PAUSE goto menu :LABEL-5 CLEANMGR CLEANMGR PAUSE goto menu :LABEL-6 PING0 PING 192.168.0.1 PAUSE goto menu :LABEL-7 PING1 PING 192.168.1.1 PAUSE goto menu :LABEL-8 STARTNOTE START NOTEPAD PAUSE goto menu