找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27924|回复: 8

[文本处理] [己解决]请教精简批处理if代码

[复制链接]
发表于 2019-4-4 15:43:59 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
请教精简代码,谢谢
发表于 2019-4-4 16:27:39 | 显示全部楼层
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. }
复制代码
 楼主| 发表于 2019-4-4 17:54:37 | 显示全部楼层
回复 2# xczxczxcz


    谢谢回复!!能不能直接用bat,不想转用ps,谢谢
发表于 2019-4-4 20:12:58 | 显示全部楼层
回复 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
复制代码
发表于 2019-4-4 20:27:47 | 显示全部楼层
  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
复制代码
发表于 2019-4-6 16:52:12 | 显示全部楼层
本帖最后由 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% 但输入不存在的跳转时闪退 有没有精减又不闪退的方法
发表于 2019-4-12 12:48:02 | 显示全部楼层
回复 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
复制代码
 楼主| 发表于 2019-4-12 16:31:03 | 显示全部楼层
一楼条件己更新,求代码??谢谢
发表于 2019-4-12 16:36:07 | 显示全部楼层
回复 8# keshun
  1. for /l %%d in (6,1,32) do if "%s%"=="%%d" goto :%%d
复制代码

评分

参与人数 1技术 +1 收起 理由
keshun + 1 谢谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:05 , Processed in 0.021447 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表