标题: [文本处理] 【已解决】批处理如何用类似elif判断一串字符在不在输入的变量内? [打印本页]
作者: 459500160 时间: 2021-2-19 17:33 标题: 【已解决】批处理如何用类似elif判断一串字符在不在输入的变量内?
本帖最后由 459500160 于 2021-2-20 21:52 编辑
- :start
- cls
- set /p n=所在部门:
- set /p m=英文名:
- set name=DB%n%-%m%
- echo %name%
- set /p choise=确认无误按Y,任意键返回
- if %choise%=="y" (goto Modification) else (go to start)
- :Modification
- echo 你是个大逗逼
- if /i not "%name:rs=%"=="%name%" (echo 管人的就是牛逼) else if /i not "%name:cw=%"=="%name%" (echo 管钱的是大佬) else (echo 苦逼的小职员)
复制代码
作者: 459500160 时间: 2021-2-19 17:34
请忽略输入错误的英文哈
作者: cutebe 时间: 2021-2-19 17:48
- if /i not "%name:RS=%"=="%name%" echo 人事
- if /i not "%name:CW=%"=="%name%" echo 财务
复制代码
作者: 459500160 时间: 2021-2-19 18:01
回复 3# cutebe
看得不是很明白,能说得详细点吗?还有突然想到for循环,不知道能不能在这里用上,我先自己测试下看看,谢谢大佬的回复
作者: cutebe 时间: 2021-2-19 21:10
本帖最后由 cutebe 于 2021-2-19 21:15 编辑
- if /i "%name:RS=%" neq "%name%" echo 人事
- 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%")
作者: 459500160 时间: 2021-2-19 22:40
回复 5# cutebe
谢谢大佬的解答,明白了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |