中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 19:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求高手指点,记得给例子,要简单明了的..
楼 主 求高手指点,记得给例子,要简单明了的.. 发表于 2008-03-06 16:46 ·  中国 广东 深圳 宝安区 电信
初级用户
积分 49
发帖 19
注册 2007-09-04 20:28
UID 96565
性别 男
状态 离线
我想实现在批处理里输入数字运行相应的命令,有人可以教我吗?
之前发过帖子了,可能因为我太笨了,看不懂你们给的例子,有高手可以教教我吗?..
下面是我乱写的:
@echo off
choice /c:1为查看IP 2为关机 3为打开计算机
if errorlevel 3 goto jisuanji
if errorlevel 2 goto guanji
if errotlevel 1 goto ip
:ip
ipconfig

:guanji
shutdown

:jisuanji
calc
2 发表于 2008-03-06 17:02 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
在每个标签执行结束后,加个goto :eof
3 发表于 2008-03-06 17:09 ·  中国 广东 深圳 宝安区 电信
初级用户
积分 49
发帖 19
注册 2007-09-04 20:28
UID 96565
性别 男
状态 离线
用了还是不行的?-_-....
4 发表于 2008-03-06 17:18 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
choice命令详解

choice ]

参数
/c Choices

指定用户选项键。显示时,选项键由逗号分隔,出现在括号()中,后面跟着问号。如果未指定 /cChoices,默认情况下,choice 显示使用 。

/n

隐藏用户选项键。如果使用此命令行选项,将在提示符之前出现消息正文,选项仍处于启用状态。

/cs

指定用户选项键必须区分大小写。默认情况下,用户选项键不区分大小写。

/t Timeout /d Choice

指定在默认为指定键之前 choice 暂停指定的秒数。下表将描述 /t 命令行选项的值。


值 描述
Timeout
要暂停的秒数。可接受的值介于 0 到 9999 之间。如果使用 0,choice 在默认为指定键之前不暂停。

/d Choice
指定 Timeout 秒数之后的默认选择。您使用的字符必须在由 /cChoices 指定的选择集中。如果使用此命令行选项,还必须同时指定 /tTimeout。


/m Text

指定要在提示符之前显示的文字。如果您包括命令行选项字符(即 /)作为提示符之前的一部分文字,必须用引号将该文字引起来。如果未指定任何文字,choice 将只显示提示符。

/?

在命令提示符下显示帮助。

注释
• ERRORVALUE 环境变量被设置为用户从选择列表中选择的键的索引。您指派的第一个键将返回值 1,第二个将返回值 2,第三个将返回值 3,依此类推。如果用户按下一个不在您指派的键中间的键,Choice.exe 将发出警告声(即,它向控制台发送一个 BEL 或 07h 字符)。如果 Choice.exe 检测到错误情况,它就会返回错误值 255。如果用户按 Ctrl+Break 或 Ctrl+C,Choice.exe 就会返回错误值 0。当您在批处理程序中使用错误值参数时,请将它们以降序列出。


示例
请在批处理文件中键入下列语法:

choice /c ync

运行 Choice.exe 时出现下列语句:

?
请在批处理文件中键入下列语法:

choice /c ync /n /m Yes, No or Continue?

运行 Choice.exe 时出现下列语句:

Yes, No, or Continue?
按如下方式将文字添加到语法中:

choice /c ync /m Yes, No, or Continue

运行 Choice.exe 时出现下列语句:

Yes, No, or Continue ?
/t 命令行选项将设置一个时间限制(在该限制内用户必须响应),并指定当用户在该时间限制内没有作出响应时将显示的值。要将时间限制设置为五秒并指定 N 作为默认值,请在批处理程序中键入下列命令行:

choice /c ync /t 5 /d n

当批处理文件启动 Choice.exe 时,将出现下列消息:

?
如果用户未能在五秒钟内按下一个键,Choice.exe 将选择 N 并返回错误值 2。否则,Choice 将返回与用户所选对应的值
5 发表于 2008-03-06 17:25 ·  中国 广东 深圳 宝安区 电信
初级用户
积分 49
发帖 19
注册 2007-09-04 20:28
UID 96565
性别 男
状态 离线
你写一段来,我弄成批处理运行看看...
我试了怎么还是不行的?.,.,
6 发表于 2008-03-06 17:29 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
@echo off
choice /c:123
if errorlevel 3 goto jisuanji
if errorlevel 2 goto guanji
if errotlevel 1 goto ip
:ip
ipconfig
goto :eof

:guanji
shutdown
goto :eof

:jisuanji
calc


如果还不行的话,请确定楼主的系统里存在choice.exe文件
7 发表于 2008-03-06 18:34 ·  中国 广东 深圳 宝安区 电信
初级用户
积分 49
发帖 19
注册 2007-09-04 20:28
UID 96565
性别 男
状态 离线
没有choice.exe要怎么添加?我是在网吧的...
SORRY,烦你那么久了..
8 发表于 2008-03-06 18:58 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
加上pause以便查看代码运行结果
shutdown得改为shutdown -s才能实现关机
鉴于关机命令可能会造成程序未保存丢失信息,请自行更改


@echo off

:num
set /p num=请输入1-3的数字:
if %num%==3 goto jisuanji else (
if %num%==2 goto guanji else (
if %num%==1 goto ip else (
goto :num
)
)
)


:ip
ipconfig
pause
goto :eof

:guanji
shutdown
pause
goto :eof

:jisuanji
calc
pause


[ Last edited by suntb on 2008-3-6 at 07:08 PM ]
9 发表于 2008-03-06 19:53 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
UID 100889
性别 男
状态 离线
还是set /p 好用
论坛跳转: