中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-15 03:42
楼 主 自写的一个choice 功能 发表于 2006-12-24 03:38 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
对于没有choice.exe 的兄弟们,这是一个小玩意儿

choice.bat

@echo off
echo please enter y or no to continue :: y/ n is jumping switch, you can also change this prompt.
set /p choice=

if {%choice%}=={} echo You entered nothing.
if {%choice%}=={y} goto :yes :: one switch else (
if {%choice%}=={n} goto :no :: another switch else (
echo you entered an identifiable word.
)
)
echo press anykey to exit.
pause >nul

:yes
echo yes
echo press anykey to exit.
pause >nul

:no
echo no
echo press anykey to exit.
pause >nul

[ Last edited by scriptor on 2006-12-23 at 02:47 PM ]
2 Remark 发表于 2006-12-24 03:44 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
Originally posted by scriptor at 2006-12-23 14:38:
对于没有choice.exe 的兄弟们,这是一个小玩意儿

choice.bat

@echo off
echo please enter y or no to continue :: y/ n is
set /p choice=

if {%choice%}=={} echo You entered n ...


The symbol "::" just is a remark.

By the way , i hope anyone can create a new batch file to reach your own purpose. But not just follow the article.

Be Imaging by youself.

Thanks, it's my fool opinion. Any wrong , please point out mistakes so that they can be corrected.

Many thanks!
3 发表于 2006-12-24 04:36 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  问题很多。

  1、:yes 子程序段和 :no 程序段没有相应的跳转语句 goto .

  2、if 加上 /i 参数可以避免输入大写的 Y / N 导致程序显示错误 .

  3、就是版面吧,感觉比较乱 .

    几点小建议,兄勿怪 .
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
scriptor +1 2006-12-24 04:54
4 哦?? 发表于 2006-12-24 04:52 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
Originally posted by lxmxn at 2006-12-23 15:36:

  问题很多。

  1、:yes 子程序段和 :no 程序段没有相应的跳转语句 goto .

  2、if 加上 /i 参数可以避免输入大写的 Y / N 导致稠...



我在我的机器上调试通过,

1、:yes 子程序段和 :no 程序段没有相应的跳转语句 goto .

有goto 的啊

关于第二点本人完全接受,多谢指点.
第三点我保留意见,呵呵
5 发表于 2006-12-24 08:23 ·  中国 广西 南宁 联通
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
@echo off
echo please enter y or no to continue :: y/ n is jumping switch, you can also change this prompt.
set /p choice=

if {%choice%}=={} echo You entered nothing.
if {%choice%}=={y} goto :yes :: one switch else (
if {%choice%}=={n} goto :no :: another switch else (
echo you entered an identifiable word.
)
)
echo press anykey to exit.
pause >nul
这里没有跳转语句,会继续执行下面的命令

:yes
echo yes
echo press anykey to exit.
pause >nul
这里没有跳转语句,会继续执行下面的命令

:no
echo no
echo press anykey to exit.
pause >nul
6 发表于 2006-12-24 08:29 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  zh159 兄已经帮我说了,我就不必多说了。
7 发表于 2006-12-24 09:08 ·  中国 湖北 武汉 电信
初级用户
积分 118
发帖 34
注册 2006-01-10 09:01
UID 48727
状态 离线
这个有很大的用处吗?
输入Y/N还要按回车才能接着运行。
有没有哪位兄弟编个不用回车就能接着运行的?
8 发表于 2006-12-24 09:40 ·  中国 江西 九江 电信
初级用户
积分 103
发帖 43
注册 2006-12-22 23:30
UID 74302
性别 男
状态 离线
set /p choice=
这是什么意思?
9 发表于 2006-12-24 10:02 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by bg at 2006-12-23 20:08:
这个有很大的用处吗?
输入Y/N还要按回车才能接着运行。
有没有哪位兄弟编个不用回车就能接着运行的?



  回车是确认,不回车怎么继续运行呢?
10 发表于 2006-12-24 10:21 ·  中国 广西 南宁 联通
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
Originally posted by bg at 2006-12-23 20:08:
这个有很大的用处吗?
输入Y/N还要按回车才能接着运行。
有没有哪位兄弟编个不用回车就能接着运行的?

用2003的 choice.exe
11 回答 发表于 2006-12-24 11:53 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
Originally posted by hake at 2006-12-23 20:40:
set /p choice=
这是什么意思?


这是接受你的键盘的输入,
同时choice 这个变量旧代表了你的选择
那么程序就会按照你的选择执行相应的命令.

更多了解,输入
set /?
再查看
12 注意了!! 发表于 2006-12-24 11:57 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
我写的这个是在你的系统里没有choice.exe的时候可以用的

我的机器里就没有,在每次编程要询问用户的意图时候,没有choice.exe很不方便,

所以就造了这个choice.bat来代替.

win 98
里面有choice.exe,可以到那里把它靠到你的机器,也行.如果不能的话 ,
我想这是一个好的选择!
13 发表于 2006-12-24 23:05 ·  中国 福建 福州 闽侯县 电信
初级用户
积分 58
发帖 22
注册 2005-12-15 13:29
UID 47187
状态 离线
Originally posted by zh159 at 2006-12-24 10:21:

用2003的 choice.exe


但是2003的 choice.exe 只能在XP以上的系统中使用
14 发表于 2006-12-24 23:08 ·  中国 福建 福州 闽侯县 电信
初级用户
积分 58
发帖 22
注册 2005-12-15 13:29
UID 47187
状态 离线
Originally posted by lxmxn at 2006-12-24 04:36:

  问题很多。

  1、:yes 子程序段和 :no 程序段没有相应的跳转语句 goto .

  2、if 加上 /i 参数可以避免输入大写的 Y / N 导致稠...



学习了
论坛跳转: