[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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 苦逼的小职员)
复制代码

请忽略输入错误的英文哈

TOP

  1. if /i not "%name:RS=%"=="%name%" echo 人事
  2. if /i not "%name:CW=%"=="%name%" echo 财务
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 3# cutebe


   看得不是很明白,能说得详细点吗?还有突然想到for循环,不知道能不能在这里用上,我先自己测试下看看,谢谢大佬的回复

TOP

本帖最后由 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%")
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 5# cutebe


    谢谢大佬的解答,明白了

TOP

返回列表