标题: [文本处理] [已解决]字符判断的批处理用什么命令可以实现啊? [打印本页]
作者: jorlaying 时间: 2022-12-13 11:49 标题: [已解决]字符判断的批处理用什么命令可以实现啊?
本帖最后由 jorlaying 于 2022-12-13 16:09 编辑
经常遇到这种需要比对的,有啥办法可以不要这么多if来判断啊?
比如我set patch=DEFG 要什么命令可以来判断%path%等于DEFG中的其中一个就算OK- ::PATH是一个变量
- echo %path%
- if /i "%path%"=="D" echo OK
- if /i "%path%"=="E" echo OK
- if /i "%path%"=="F" echo OK
- if /i "%path%"=="G" echo OK
复制代码
作者: 77七 时间: 2022-12-13 12:12
本帖最后由 77七 于 2022-12-13 12:14 编辑
- @echo off
- set path1=D123456
- echo %path1% | findstr "D E F G" && echo OK || echo sorry
- pause
复制代码
作者: jorlaying 时间: 2022-12-13 12:34
回复 2# 77七
大佬的回复速度真快啊,但是输入DDD EEE FF也成OK了
作者: qixiaobin0715 时间: 2022-12-13 12:41
本帖最后由 qixiaobin0715 于 2022-12-13 12:53 编辑
- echo,%var%|findstr /x "D E F G">nul 2>nul
- if %errorlevel% equ 0 echo,ok
复制代码
作者: qixiaobin0715 时间: 2022-12-13 12:48
%path%在cmd中属于环境变量,最好不要把它设置为其它变量。你可以单独:复制代码
试试。
作者: jorlaying 时间: 2022-12-13 12:59
回复 5# qixiaobin0715
你这个测试可以,%path%只是临时示范的,应用的时候不会这样用
整合一下 看看能否行得通。到时再回来请教。:lol
作者: jorlaying 时间: 2022-12-13 13:22
回复 5# qixiaobin0715
小写可以加参数吗?还是只能加入d e f g
作者: 77七 时间: 2022-12-13 13:51
回复 3# jorlaying
我是小白,不会写,也不知道你具体应用环境,四个选项都指向一个结果,输入只要包含应该也没啥问题
作者: qixiaobin0715 时间: 2022-12-13 14:07
回复 7# jorlaying
打开cmd窗口,输入findstr /?,回车。查看帮助。
作者: jorlaying 时间: 2022-12-13 14:12
回复 9# qixiaobin0715
已解决,谢谢!加了/I
作者: jorlaying 时间: 2022-12-13 14:14
回复 2# 77七
我比你更小白。哈哈 你的代码加个/x 应该没问题
作者: 77七 时间: 2022-12-13 14:52
回复 11# jorlaying
是,完全匹配..之前看过教程,太枯燥,根本记不住...还是得在实践中学习..现在我记住了
作者: hfxiang 时间: 2022-12-13 14:56
- ::VAR是一个变量
- set "VAR=d"
- for /f %%a in ('echo;D E F G d e f g') do set "_%%a=True"
- echo %VAR%
- if defined _%VAR% echo OK
复制代码
作者: jorlaying 时间: 2022-12-13 15:28
回复 13# hfxiang
厉害厉害,我用你的代码和上面的代码一样都达到了想要的效果。
但是我不明白"_%%a=True"是什么意思,我吧True随便改了一个123也没出错。。?
作者: hfxiang 时间: 2022-12-13 16:38
回复 14# jorlaying
对,任何字符都可以,用true只是个习惯
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |