楼 主
请教 set 变量输入空格后的判断问题
发表于 2007-01-06 00:59 · 中国 广东 深圳 电信
初级用户
★
积分 153 发帖 20 注册 2003-06-12 00:00 23年会员 UID 4904 性别 男
状态 离线
如下:
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 ]
第 2 楼
发表于 2007-01-06 01:04 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181 发帖 533 注册 2006-08-14 12:54 19年会员 UID 60484
状态 离线
你写的代码中,输入为空时跳到ERR,代码没有指定其它情况可以跳到ERR。你可以在最后加一句跳到ERR,因为上面全不满足,才可能执行到它。
第 3 楼
发表于 2007-01-06 01:09 · 中国 广东 深圳 电信
初级用户
★
积分 153 发帖 20 注册 2003-06-12 00:00 23年会员 UID 4904 性别 男
状态 离线
呵呵...
谢谢指教...
刚才自己又重新的完整看了一遍自己的代码..
结果就得出你说的结论了...
以前没注意到这个问题...
呵呵...
第 4 楼
发表于 2007-01-06 01:40 · 中国 广东 深圳 电信
初级用户
★
积分 153 发帖 20 注册 2003-06-12 00:00 23年会员 UID 4904 性别 男
状态 离线
另外..
想请问一下...
如果输入的是空格应该怎么判断呢?
第 5 楼
发表于 2007-01-06 01:51 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 19年会员 UID 59080
状态 离线
if {%choice%}=={ } goto error
第 6 楼
发表于 2007-01-06 01:58 · 中国 广东 深圳 电信
初级用户
★
积分 153 发帖 20 注册 2003-06-12 00:00 23年会员 UID 4904 性别 男
状态 离线
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 ]
第 7 楼
发表于 2007-01-06 02:58 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 19年会员 UID 59080
状态 离线
现在你输入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
第 8 楼
发表于 2007-01-06 03:02 · 中国 广东 深圳 电信
初级用户
★
积分 153 发帖 20 注册 2003-06-12 00:00 23年会员 UID 4904 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正