标题: [其他] 请教精简批处理if命令 [打印本页]
作者: smss 时间: 2019-4-6 17:04 标题: 请教精简批处理if命令
- set /p Z=输入对应字符回车:
- if not "%Z%"=="" set Z=%Z:~0,2%
- if "%Z%"=="0" goto 0
- if "%Z%"=="1" goto 1
- if "%Z%"=="2" goto 2
- if "%Z%"=="3" (set "Aa=视频"&goto 3)
- if "%Z%"=="4" (set "Aa=电影"&goto 3)
- if "%Z%"=="5" goto 5
- if "%Z%"=="6" goto 6
- if "%Z%"=="7" goto 7
- if "%Z%"=="8" goto 8
- if "%Z%"=="9" goto 9
- if "%Z%"=="a" goto a
- if "%Z%"=="b" goto b
- if "%Z%"=="c" goto c
- if "%Z%"=="d" goto d
- if "%Z%"=="e" goto e
- if "%Z%"=="f" goto f
- if "%Z%"=="g" goto g
- if "%Z%"=="h" goto h
- if "%Z%"=="i" goto i
- if "%Z%"=="j" goto j
- echo 选择无效,请重新输入!
- ping 0 -n "1">nul&goto Cho
复制代码
精减写成
set /p Z=输入对应字符回车:
精减成goto %Z%
但输入不存在的跳转时闪退 有没有精减又不闪退的方法
作者: xczxczxcz 时间: 2019-4-6 19:09
参考:顺便回复另一贴- @Echo Off & CD /d "%~dp0"
-
- :Cho
- set /p "Z=输入对应字符回车:" &cls
- if "%Z%"=="" (echo 输入字符 & goto Cho)
- echo %Z%|findstr /i "^[0-9a-jq]$">nul&& (
- if /i "%Z%"=='Q' exit
- if %Z%==3 (set "Aa=视频" & goto 3)
- if %Z%==4 (set "Aa=电影" & goto 3)
- goto %Z%
- )||echo 输入错误 & goto Cho
-
- :0
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :1
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :2
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :3
- echo 您输入的是 %Z% 视频 电影
- pause & goto Cho
-
- :5
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :6
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :7
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :8
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :9
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :a
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :b
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :c
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :d
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :e
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :f
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :g
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :h
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :i
- echo 您输入的是 %Z%
- pause & goto Cho
-
- :j
- echo 您输入的是 %Z%
- pause & goto Cho
复制代码
作者: smss 时间: 2019-4-6 20:57
本帖最后由 smss 于 2019-4-6 21:19 编辑
参考:顺便回复另一贴
xczxczxcz 发表于 2019-4-6 19:09
如果大于9呢 [0-12a-m] 数字不行
作者: xczxczxcz 时间: 2019-4-6 21:21
回复 3# smss
支持 0-99 a-j A-J q/Q为退出。用法自查,findstr /?- @Echo Off
-
- :Cho
- set /p "Z=输入对应字符回车:" &cls
- if "%Z%"=="" (echo 输入字符 & goto Cho)
- echo %Z%|findstr /i "^[0-9a-jq]$ ^[1-9][0-9]$">nul&&(
- if /i "%Z%"=="Q" exit
- if %Z%==3 (set "Aa=视频"&echo %Z% %Aa% & goto Cho)
- if %Z%==4 (set "Aa=电影"&echo %Z% %Aa% & goto Cho)
- echo %Z% & goto Cho
- )||echo 输入错误 & goto Cho
复制代码
作者: smss 时间: 2019-4-6 21:37
本帖最后由 smss 于 2019-4-6 21:43 编辑
回复 4# xczxczxcz
目前只写了12个 因些想指定0-12范围
echo %Z%|findstr /i "^[0-9a-m]$ ^[1-12][0-12]$">nul&&(
作者: xczxczxcz 时间: 2019-4-6 21:42
"^[0-9a-jq]$ ^[1-9][0-9]$" 改成 "^[0-9a-mq]$ ^1[0-2]$"
作者: smss 时间: 2019-4-6 21:46
本帖最后由 smss 于 2019-4-6 21:52 编辑
"^[0-9a-jq]$ ^[1-9][0-9]$" 改成 "^[0-9a-mq]$ ^1[0-2]$"
xczxczxcz 发表于 2019-4-6 21:42
好的另外多说句 如果要关闭就直接点叉了 为什么要在里面加个Q关闭
作者: xczxczxcz 时间: 2019-4-6 21:57
加个Q 可以不用鼠标啊。只敲键盘就行。不喜欢可以自行删除 q字母和exit行。
作者: whiter 时间: 2019-4-7 12:21
为什么不直接设置宏命令 配置doskey,支持传参数
纯脚本的工具,用goto跳转,感觉还是稍微差了些
作者: whiter 时间: 2019-4-7 12:29
你这个脚本写的话,命令可能比较多,说明提示肯定是需要的,不如单独写一个说明文件, 把命令和注释按不同的行开头区分开
主文件 判断if的时候,用- FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
复制代码
读取一下 , 如果有对应的命令就执行,没有就报错提示
也方便做你那么长的说明文件
作者: smss 时间: 2019-4-7 13:01
你这个脚本写的话,命令可能比较多,说明提示肯定是需要的,不如单独写一个说明文件, 把命令和注释按不同的行开 ...
whiter 发表于 2019-4-7 12:29
因为我太笨了,这脚本主要用来调取JAVA解包打包的.写成EXE 就可以变成和ROM制作工具一样的(他们都内置推广软件的)
作者: whiter 时间: 2019-4-7 13:40
回复 11# smss
噢,多写写就好了,脚本写好 最后用iexpress打包成exe就是了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |