Board logo

标题: [文本处理] [已解决]字符判断的批处理用什么命令可以实现啊? [打印本页]

作者: jorlaying    时间: 2022-12-13 11:49     标题: [已解决]字符判断的批处理用什么命令可以实现啊?

本帖最后由 jorlaying 于 2022-12-13 16:09 编辑

经常遇到这种需要比对的,有啥办法可以不要这么多if来判断啊?
比如我set patch=DEFG  要什么命令可以来判断%path%等于DEFG中的其中一个就算OK
  1. ::PATH是一个变量
  2. echo %path%
  3. if /i "%path%"=="D" echo OK
  4. if /i "%path%"=="E" echo OK
  5. if /i "%path%"=="F" echo OK
  6. if /i "%path%"=="G" echo OK
复制代码

作者: 77七    时间: 2022-12-13 12:12

本帖最后由 77七 于 2022-12-13 12:14 编辑
  1. @echo off
  2. set path1=D123456
  3. echo %path1% | findstr "D E F G" && echo OK || echo sorry
  4. 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 编辑
  1. echo,%var%|findstr /x "D E F G">nul 2>nul
  2. if %errorlevel% equ 0 echo,ok
复制代码

作者: qixiaobin0715    时间: 2022-12-13 12:48

%path%在cmd中属于环境变量,最好不要把它设置为其它变量。你可以单独:
  1. echo,%path%
复制代码
试试。
作者: 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

  1. ::VAR是一个变量
  2. set "VAR=d"
  3. for /f %%a in ('echo;D E F G d e f g') do set "_%%a=True"
  4. echo %VAR%
  5. 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