中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教 set 变量输入空格后的判断问题
作者:
标题: 请教 set 变量输入空格后的判断问题 上一主题 | 下一主题
kingshui
初级用户




积分 153
发帖 20
注册 2003-6-12
状态 离线
『楼 主』:  请教 set 变量输入空格后的判断问题

如下:
set choice=
set /p choice=  唔该擒入选项号:
if {%choice%}=={} goto err
if /i %choice%==01 goto game
if /i %choice%==02 goto junk
if /i %choice%==03 goto updata
if /i %choice%==04 goto found
if /i %choice%==05 goto fix
if /i %choice%==06 goto find
if /i %choice%==07 goto replace
if /i %choice%==08 goto copy
if /i %choice%==09 goto del
if /i %choice%==10 goto nomal
if /i %choice%==0 exit
现象是:
输入指定以外的字符时
自动退出了批处理
本来不应该是跳转到 err标签的吗?

[ Last edited by kingshui on 2007-1-6 at 02:00 AM ]

2007-1-6 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 2 楼』:  

你写的代码中,输入为空时跳到ERR,代码没有指定其它情况可以跳到ERR。你可以在最后加一句跳到ERR,因为上面全不满足,才可能执行到它。

2007-1-6 01:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kingshui
初级用户




积分 153
发帖 20
注册 2003-6-12
状态 离线
『第 3 楼』:  

呵呵...
谢谢指教...
刚才自己又重新的完整看了一遍自己的代码..
结果就得出你说的结论了...
以前没注意到这个问题...
呵呵...

2007-1-6 01:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kingshui
初级用户




积分 153
发帖 20
注册 2003-6-12
状态 离线
『第 4 楼』:  

另外..
想请问一下...
如果输入的是空格应该怎么判断呢?

2007-1-6 01:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


if {%choice%}=={ } goto error


2007-1-6 01:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kingshui
初级用户




积分 153
发帖 20
注册 2003-6-12
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lxmxn at 2007-1-6 01:51 AM:

if {%choice%}=={ } goto error

不知道怎么回事..
用以上的语句也不行
能不能过滤掉空格呢??并不是指仅一个空格..是指所有的空格
以下是我的源代码:
@echo off
:nomal
echo 01.game
echo 02.junk
echo 03.updata
echo 04.found
echo 05.fix
echo 06.find
echo 07.replace
echo 08.copy
echo 09.del
echo 10.nomal
set choice=
set /p choice=  唔该擒入选项号:
if {%choice%}=={} goto err
if {%choice%}=={ } goto err
if /i %choice%==01 goto game
if /i %choice%==02 goto junk
if /i %choice%==03 goto updata
if /i %choice%==04 goto found
if /i %choice%==05 goto fix
if /i %choice%==06 goto find
if /i %choice%==07 goto replace
if /i %choice%==08 goto copy
if /i %choice%==09 goto del
if /i %choice%==10 goto nomal
if /i %choice%==0 exit
:err
echo err
pause
goto nomal
:game
echo game
pause
goto nomal
:junk
echo junk
pause
goto nomal
:updata
echo updata
goto nomal
pause
goto nomal
:found
echo found
pause
goto nomal
:fix
echo fix
pause
goto nomal
:find
echo find
pause
goto nomal
:replace
echo replace
pause
goto nomal
:copy
echo copy
pause
goto nomal
:del
echo del
pause
goto nomal
[ Last edited by kingshui on 2007-1-6 at 02:04 AM ]

2007-1-6 01:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  


  现在你输入0        1      和输入01的效果是一样的,都显示game。
@echo off
:nomal
echo 01.game
echo 02.junk
echo 03.updata
echo 04.found
echo 05.fix
echo 06.find
echo 07.replace
echo 08.copy
echo 09.del
echo 10.nomal
set choice=
set /p choice=  唔该擒入选项号:
set choice=%choice: =%
if {%choice%}=={} goto err
if /i %choice%==01 goto game
if /i %choice%==02 goto junk
if /i %choice%==03 goto updata
if /i %choice%==04 goto found
if /i %choice%==05 goto fix
if /i %choice%==06 goto find
if /i %choice%==07 goto replace
if /i %choice%==08 goto copy
if /i %choice%==09 goto del
if /i %choice%==10 goto nomal
if /i %choice%==0 exit
:err
echo err
pause
goto nomal
:game
echo game
pause
goto nomal
:junk
echo junk
pause
goto nomal
:updata
echo updata
goto nomal
pause
goto nomal
:found
echo found
pause
goto nomal
:fix
echo fix
pause
goto nomal
:find
echo find
pause
goto nomal
:replace
echo replace
pause
goto nomal
:copy
echo copy
pause
goto nomal
:del
echo del
pause
goto nomal


2007-1-6 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kingshui
初级用户




积分 153
发帖 20
注册 2003-6-12
状态 离线
『第 8 楼』:  

非常感谢....

刚才在看http://www.cn-dos.net/forum/view ... ghlight=&page=1篇文章..
一下子还没有反应过来...

[ Last edited by kingshui on 2007-1-6 at 03:03 AM ]

2007-1-6 03:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: