|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
『楼 主』:
[已结]批处理选择菜单问题
菜单大致如下, 以下可以选则 1 2 3 4 执行命令 但是要是输入了 5 等错误的数字后如何返回选择菜单.
代码大致如下:
@ECHO OFF
ECHO.
ECHO. 1 执行命令a
ECHO.
ECHO. 2 执行命令b
ECHO.
ECHO. 3 执行命令c
ECHO.
ECHO. 4 退 出
ECHO.
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" goto cmd3
IF "%id%"=="4" exit
:cmd1
echo 执行命令a
cmd1.exe
exit
:cmd2
echo 执行命令b
cmd2.exe
exit
:cmd3
echo 执行命令c
cmd3.exe
exit [ Last edited by HAT on 2008-10-20 at 22:17 ]
|
|
2008-10-18 23:38 |
|
|
balinger
中级用户
积分 356
发帖 115
注册 2004-7-27
状态 离线
|
『第
2 楼』:
:lp
ECHO.
ECHO. 1 执行命令a
ECHO.
ECHO. 2 执行命令b
ECHO.
ECHO. 3 执行命令c
ECHO.
ECHO. 4 退 出
ECHO.
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" goto cmd3
IF "%id%"=="4" exit
cls
goto :lp
。。。。。。。。。。。。。
|
|
2008-10-19 00:08 |
|
|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
『第
3 楼』:
谢谢,寒.我还一只在想要用IF 做什么样的判断语句..
- -
55555 我错了。
|
|
2008-10-19 00:14 |
|
|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
『第
4 楼』:
兄弟,你的方法不对啊,
你那只是一个循环到
if "%id%"=="1" goto cmd1
啊.
你自己看看
@echo off
:lp
ECHO.
ECHO. 1 执行命令a
ECHO.
ECHO. 2 执行命令b
ECHO.
ECHO. 3 执行命令c
ECHO.
ECHO. 4 退 出
ECHO.
echo. 请输入选择项目的序号c d e f:
set /p ID=
if "%id%"=="1" goto cmd1
pause
exit
if "%id%"=="2" goto cmd2
exit
if "%id%"=="3" goto cmd3
exit
IF "%id%"=="4" exit
cls
goto :lp
|
|
2008-10-19 00:18 |
|
|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
『第
5 楼』:
也就是说当你输入5以后的数值时 P处理只回到 CMD1
|
|
2008-10-19 00:20 |
|
|
ccily2701
初级用户
积分 80
发帖 45
注册 2006-9-22 来自 jiangxi
状态 离线
|
『第
6 楼』:
给ID赋上初值,
set id=1
set /p id=请输入:(默认为1)
|
|
2008-10-19 09:04 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2008-10-19 11:29 |
|
|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
|
2008-10-19 13:11 |
|
|
kisslbye
新手上路
积分 3
发帖 2
注册 2008-9-27
状态 离线
|
『第
9 楼』:
可以用 if not 命令来判断
ECHO off
:b
cls
ECHO. 1 执行命令a
ECHO.
ECHO. 2 执行命令b
ECHO.
ECHO. 3 执行命令c
ECHO.
ECHO. 4 退 出
ECHO.
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" goto cmd3
IF "%id%"=="4" exit
IF not "%id%"=="1,2,3,4" goto a
:cmd1
echo 执行命令a
cmd1.exe
:cmd2
echo 执行命令b
cmd2.exe
:cmd3
echo 执行命令c
cmd3.exe
:A
cls
echo 你的输入错误,请重新输入.
ping -n 3 127.1>nul
goto b
|
|
2008-10-20 07:53 |
|
|
ccily2701
初级用户
积分 80
发帖 45
注册 2006-9-22 来自 jiangxi
状态 离线
|
『第
10 楼』:
楼上兄弟很对,因为ID只有1、2、3、4的判断,所以输入“5”时候程序判断完之后会继续执行下面的操作!~
|
|
2008-10-20 09:04 |
|
|
kookycy
初级用户
积分 41
发帖 32
注册 2008-10-16
状态 离线
|
『第
11 楼』:
感谢9楼
不过你的代码不知道你自己试过没,你编的是输入任何数字都回报错的。
同时感谢楼上的各位的帮助.
今天我已经找到方法了。借用9楼的 ping -n 3 127.1>nul
这个命令更完美了.
命令如下
ECHO off
:a
cls
ECHO. 1 执行命令a
ECHO.
ECHO. 2 执行命令b
ECHO.
ECHO. 3 执行命令c
ECHO.
ECHO. 4 退 出
ECHO.
echo. 请输入选择项目的序号:
set /p ID=
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" goto cmd3
IF "%id%"=="4" exit
cls
echo.
echo 你的输入错误,请重新输入.
ping -n 3 127.1>nul
goto a
:cmd1
echo 执行命令a
pause
exit
:cmd2
echo 执行命令b
pause
exit
:cmd3
echo 执行命令c
pause
exit
|
|
2008-10-20 21:49 |
|
|
wangking2008
初级用户
积分 27
发帖 16
注册 2008-10-27
状态 离线
|
|
2009-2-25 23:30 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
13 楼』:
@echo off
set menus="1 执行命令a" "2 执行命令b" "3 执行命令c" "4 退 出"
setlocal enabledelayedexpansion
:lp
cls
for %%a in (%menus%) do echo.&echo.%%~a
set key=&set /p key=请输入选择项目的序号:
for %%b in (%menus%) do set m=%%~b&if "!m:~0,1!"=="%key%" goto :sub%key%
goto :lp
:sub1
echo 执行命令a
goto :eof
:sub2
echo 执行命令b
goto :eof
:sub3
echo 执行命令c
goto :eof
:sub4
endlocal
exit
[ Last edited by netbenton on 2009-2-26 at 05:39 ]
|
精简
[你的+我的+他的]=>[大家的] 个人网志 |
|
2009-2-26 03:01 |
|
|
jycel
初级用户
积分 75
发帖 46
注册 2007-9-25
状态 离线
|
『第
14 楼』:
@echo off
CLS
COLOR 0b
MODE con: COLS=50 LINES=20
@echo.
@echo 1 执行命令a
@echo.
@echo 2 执行命令b
@echo.
@echo 3 执行命令c
@echo.
SET Choice=
SET /P Choice= 请选择(1/2/3/):
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
ECHO.
IF /I "%Choice%"=="1" GOTO cmd1
IF /I "%Choice%"=="2" GOTO cmd2
IF /I "%Choice%"=="3" GOTO cmd3
goto :eof
:cmd1
echo 执行命令a
cmd1.exe
exit
:cmd2
echo 执行命令b
cmd2.exe
exit
:cmd3
echo 执行命令c
cmd3.exe
exit
|
努力学习!我行的! |
|
2009-2-27 07:59 |
|