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

[文本处理] 【已解决】批处理如何用类似elif判断一串字符在不在输入的变量内?

[复制链接]
发表于 2021-2-19 17:33:25 | 显示全部楼层 |阅读模式
本帖最后由 459500160 于 2021-2-20 21:52 编辑
  1. :start
  2. cls
  3. set /p n=所在部门:
  4. set /p m=英文名:
  5. set name=DB%n%-%m%
  6. echo %name%
  7. set /p choise=确认无误按Y,任意键返回
  8. if %choise%=="y" (goto Modification) else (go to start)
  9. :Modification
  10. echo 你是个大逗逼
  11. if /i not "%name:rs=%"=="%name%" (echo 管人的就是牛逼) else if /i not "%name:cw=%"=="%name%" (echo 管钱的是大佬) else (echo 苦逼的小职员)
复制代码
 楼主| 发表于 2021-2-19 17:34:08 | 显示全部楼层
请忽略输入错误的英文哈
发表于 2021-2-19 17:48:00 | 显示全部楼层
  1. if /i not "%name:RS=%"=="%name%" echo 人事
  2. if /i not "%name:CW=%"=="%name%" echo 财务
复制代码
 楼主| 发表于 2021-2-19 18:01:04 | 显示全部楼层
回复 3# cutebe


   看得不是很明白,能说得详细点吗?还有突然想到for循环,不知道能不能在这里用上,我先自己测试下看看,谢谢大佬的回复
发表于 2021-2-19 21:10:51 | 显示全部楼层
本帖最后由 cutebe 于 2021-2-19 21:15 编辑
  1. if /i "%name:RS=%" neq "%name%" echo 人事
  2. if /i "%name:CW=%" neq "%name%" echo 财务
复制代码
第一句表示:如果 删除RS后的字串name("%name:RS=%"),与原字串("%name%"),二者对比有差异 说明原字串中含有RS子串。

"%name:RS=%"                表示字符串替换:RS换成空                //意思就相当于删除RS
"%name:RS=%" neq "%name%" 表示条件:不相同    //相当于前面的not ==  (not "%name:CW=%"=="%name%")
 楼主| 发表于 2021-2-19 22:40:56 | 显示全部楼层
回复 5# cutebe


    谢谢大佬的解答,明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 10:45 , Processed in 0.017928 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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