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

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

本帖最后由 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:14 编辑
  1. @echo off
  2. set path1=D123456
  3. echo %path1% | findstr "D E F G" && echo OK || echo sorry
  4. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


    大佬的回复速度真快啊,但是输入DDD EEE FF也成OK了

TOP

本帖最后由 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
复制代码

TOP

%path%在cmd中属于环境变量,最好不要把它设置为其它变量。你可以单独:
  1. echo,%path%
复制代码
试试。

TOP

回复 5# qixiaobin0715


    你这个测试可以,%path%只是临时示范的,应用的时候不会这样用
整合一下 看看能否行得通。到时再回来请教。:lol

TOP

回复 5# qixiaobin0715


    小写可以加参数吗?还是只能加入d e f g

TOP

回复 3# jorlaying

我是小白,不会写,也不知道你具体应用环境,四个选项都指向一个结果,输入只要包含应该也没啥问题
bat小白,请多指教!谢谢!

TOP

回复 7# jorlaying
打开cmd窗口,输入findstr /?,回车。查看帮助。

TOP

回复 9# qixiaobin0715


    已解决,谢谢!加了/I

TOP

回复 2# 77七


    我比你更小白。哈哈 你的代码加个/x 应该没问题

TOP

回复 11# jorlaying

是,完全匹配..之前看过教程,太枯燥,根本记不住...还是得在实践中学习..现在我记住了
bat小白,请多指教!谢谢!

TOP

  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
复制代码

TOP

回复 13# hfxiang


    厉害厉害,我用你的代码和上面的代码一样都达到了想要的效果。
但是我不明白"_%%a=True"是什么意思,我吧True随便改了一个123也没出错。。?

TOP

回复 14# jorlaying


    对,任何字符都可以,用true只是个习惯

TOP

返回列表