Board logo

标题: [文本处理] [己解决]请教精简批处理if代码 [打印本页]

作者: keshun    时间: 2019-4-4 15:43     标题: [己解决]请教精简批处理if代码

本帖最后由 keshun 于 2019-4-12 16:47 编辑

原条件己更新(6-32)
  1. for %%d in ( 6,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32 ) do if "%s%"=="%%d"  goto a
复制代码
请教精简代码,谢谢
作者: xczxczxcz    时间: 2019-4-4 16:27

ps:
  1. Switch -r ($k) {
  2. '1|2|4|8|10|12|14|16' { a; break }
  3. '3|5|6|7|9|11|13|15' { b;}
  4. }
复制代码

作者: keshun    时间: 2019-4-4 17:54

回复 2# xczxczxcz


    谢谢回复!!能不能直接用bat,不想转用ps,谢谢
作者: xczxczxcz    时间: 2019-4-4 20:12

回复 3# keshun

参考:
  1. @Echo Off
  2. set "k=5"
  3. for %%a in ( 1,2,4,8,10,12,14,16 ) do if "%k%"=="%%a" goto A
  4. for %%a in ( 3,5,6,7,9,11,13,15 ) do if "%k%"=="%%a" goto B
  5. :A
  6. echo "今天股市又升了点。很高兴!"
  7. pause & exit
  8. :B
  9. echo "天朝福彩专业诈取穹叼丝"
  10. pause & exit
复制代码

作者: lifei259    时间: 2019-4-4 20:27

  1. for %%a in (1 2 4 8 10 12 14 16) do if /i "%k%" == "%%a" goto a
  2. for %%b in (3 5 6 7 9 11 13 15) do if /i "%k%" == "%%b" goto b
  3. pause
复制代码

作者: smss    时间: 2019-4-6 16:52

本帖最后由 smss 于 2019-4-6 17:01 编辑
回复  keshun

参考:
xczxczxcz 发表于 2019-4-4 20:12


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% 但输入不存在的跳转时闪退 有没有精减又不闪退的方法
作者: Batcher    时间: 2019-4-12 12:48

回复 6# smss
  1. @echo off
  2. :input
  3. set /p Z=输入对应字符回车:
  4. for %%i in (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j) do (
  5.     if "%Z%" equ "%%i" (
  6.         goto :%%i
  7.     )
  8. )
  9. echo 选择无效,请重新输入!
  10. goto :input
  11. :0
  12. echo 0
  13. goto :eof
  14. :1
  15. echo 1
  16. goto :eof
复制代码

作者: keshun    时间: 2019-4-12 16:31

一楼条件己更新,求代码??谢谢
作者: Batcher    时间: 2019-4-12 16:36

回复 8# keshun
  1. for /l %%d in (6,1,32) do if "%s%"=="%%d" goto :%%d
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2