批处理的goto语句问题
我写了一个批处理,用来运行软件,(其实也没多大用处主要是才开始学想多写点好熟悉一下)代码如下:@echoofftitle软件运行管理colorA:startclsecho...
我写了一个批处理,用来运行软件,(其实也没多大用处主要是才开始学想多写点好熟悉一下)代码如下:
@echo off
title 软件运行管理
color A
:start
cls
echo 软件列表:
echo 1:QQ 2:CS 3:冰封王座 4:music 5:迅雷
set /p choose=请输入对应的编号,按ENTER确定:
if %choose%==1 (
start tencentqq
cls
goto starttwo
) else if %choose%==2 (
start cs
) else if %choose%==3 (
start war3
) else if %choose%==4 (
start music
) else if %choose%==5 (
start thunder
) else (
cls
echo 输入错误!按任意键返回重新输入!
)
pause >nul
goto start
:starttwo
echo 请选择:
echo 1.继续运行软件 2.退出
set /p back=请输入:
if %back%==1 (
cls
goto start
) else if %back%==2 (
exit
) else (
echo 错误!按任意键返回重新输入。
pause >nul
cls
goto starttwo
)
----------------------------------------------------------------
当出现选择界面的时候,如果什么都不输入,只键入ENTER或则空格程序就会报错 错误信息为:此时不应有GOTO语句,请问该怎么解决?请大虾指教……
__________________________________________________________________________________________
对一楼的回答,有如下描述:不好意识,我刚开始学批处理,很多都不懂,请问除了goto语句能使程序运行过程中突然跳到另外一段代码处执行外,还有那个命令可以实现相同的功能 或则 某种方法实现该功能呢? 展开
@echo off
title 软件运行管理
color A
:start
cls
echo 软件列表:
echo 1:QQ 2:CS 3:冰封王座 4:music 5:迅雷
set /p choose=请输入对应的编号,按ENTER确定:
if %choose%==1 (
start tencentqq
cls
goto starttwo
) else if %choose%==2 (
start cs
) else if %choose%==3 (
start war3
) else if %choose%==4 (
start music
) else if %choose%==5 (
start thunder
) else (
cls
echo 输入错误!按任意键返回重新输入!
)
pause >nul
goto start
:starttwo
echo 请选择:
echo 1.继续运行软件 2.退出
set /p back=请输入:
if %back%==1 (
cls
goto start
) else if %back%==2 (
exit
) else (
echo 错误!按任意键返回重新输入。
pause >nul
cls
goto starttwo
)
----------------------------------------------------------------
当出现选择界面的时候,如果什么都不输入,只键入ENTER或则空格程序就会报错 错误信息为:此时不应有GOTO语句,请问该怎么解决?请大虾指教……
__________________________________________________________________________________________
对一楼的回答,有如下描述:不好意识,我刚开始学批处理,很多都不懂,请问除了goto语句能使程序运行过程中突然跳到另外一段代码处执行外,还有那个命令可以实现相同的功能 或则 某种方法实现该功能呢? 展开
2个回答
展开全部
@echo off
title 软件运行管理
color A
set null=
set space=
:start
cls
echo 软件列表:
echo 1:QQ 2:CS 3:冰封王座 4:music 5:迅雷 6:退出
set /p choice=请输入对应的编号,按ENTER确定:
if /i "%choice%"=="%space%" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
if /i "%choice%"=="%null%" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
if /i %choice%==1 start c:\windows\regedit.exe & goto start
if /i %choice%==2 start ......... & goto start
if /i %choice%==3 start ......... & goto start
if /i %choice%==4 start ......... & goto start
if /i %choice%==5 start ......... & goto start
if /i %choice%==6 exit
if /i "%choice%" neq "1 2 3 4 5 6" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
那些要执行的软件必须写完整的路径,比如执行c:\windows\regedit.exe
下面的你自己根据电脑情况修改!
要注意:
set null=
等于号后面没有空格
set space=
等于号后面有个空格
其实你根本没必要写这个批处理,直接在这些软件的快捷方式属性里,设置个快捷键就行了
title 软件运行管理
color A
set null=
set space=
:start
cls
echo 软件列表:
echo 1:QQ 2:CS 3:冰封王座 4:music 5:迅雷 6:退出
set /p choice=请输入对应的编号,按ENTER确定:
if /i "%choice%"=="%space%" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
if /i "%choice%"=="%null%" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
if /i %choice%==1 start c:\windows\regedit.exe & goto start
if /i %choice%==2 start ......... & goto start
if /i %choice%==3 start ......... & goto start
if /i %choice%==4 start ......... & goto start
if /i %choice%==5 start ......... & goto start
if /i %choice%==6 exit
if /i "%choice%" neq "1 2 3 4 5 6" echo. & echo 输入错误! & echo. & ping -n 2 127.1>nul & cls & goto start
那些要执行的软件必须写完整的路径,比如执行c:\windows\regedit.exe
下面的你自己根据电脑情况修改!
要注意:
set null=
等于号后面没有空格
set space=
等于号后面有个空格
其实你根本没必要写这个批处理,直接在这些软件的快捷方式属性里,设置个快捷键就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询