中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求高手指点,记得给例子,要简单明了的..
作者:
标题: 求高手指点,记得给例子,要简单明了的.. 上一主题 | 下一主题
xiaolai
初级用户




积分 49
发帖 19
注册 2007-9-4
状态 离线
『楼 主』:  求高手指点,记得给例子,要简单明了的..

我想实现在批处理里输入数字运行相应的命令,有人可以教我吗?
之前发过帖子了,可能因为我太笨了,看不懂你们给的例子,有高手可以教教我吗?..
下面是我乱写的:
@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

2008-3-6 16:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 2 楼』:  

在每个标签执行结束后,加个goto :eof

2008-3-6 17:02
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
xiaolai
初级用户




积分 49
发帖 19
注册 2007-9-4
状态 离线
『第 3 楼』:  

用了还是不行的?-_-....

2008-3-6 17:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 4 楼』:  

choice命令详解

choice [/c [Choices]] [/n] [/cs] [/tTimeout/dChoice] [/mText]

参数
/c Choices

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

/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 时出现下列语句:

[Y,N,C]?
请在批处理文件中键入下列语法:

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 [Y,N,C]?
/t 命令行选项将设置一个时间限制(在该限制内用户必须响应),并指定当用户在该时间限制内没有作出响应时将显示的值。要将时间限制设置为五秒并指定 N 作为默认值,请在批处理程序中键入下列命令行:

choice /c ync /t 5 /d n

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

[Y,N,C]?
如果用户未能在五秒钟内按下一个键,Choice.exe 将选择 N 并返回错误值 2。否则,Choice 将返回与用户所选对应的值

2008-3-6 17:18
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
xiaolai
初级用户




积分 49
发帖 19
注册 2007-9-4
状态 离线
『第 5 楼』:  

你写一段来,我弄成批处理运行看看...
我试了怎么还是不行的?.,.,

2008-3-6 17:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 6 楼』:  

@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文件

2008-3-6 17:29
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
xiaolai
初级用户




积分 49
发帖 19
注册 2007-9-4
状态 离线
『第 7 楼』:  

没有choice.exe要怎么添加?我是在网吧的...
SORRY,烦你那么久了..

2008-3-6 18:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 8 楼』:  

加上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 ]

2008-3-6 18:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
faultcode
初级用户





积分 120
发帖 60
注册 2007-10-26
状态 离线
『第 9 楼』:  

还是set /p 好用

2008-3-6 19:53
查看资料  发送邮件  发短消息 网志  OICQ (582954699)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: