找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21844|回复: 14

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

[复制链接]
发表于 2022-12-13 11:49:26 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
发表于 2022-12-13 12:12:02 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2022-12-13 12:34:39 | 显示全部楼层
回复 2# 77七


    大佬的回复速度真快啊,但是输入DDD EEE FF也成OK了
发表于 2022-12-13 12:41:55 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2022-12-13 12:48:43 | 显示全部楼层
%path%在cmd中属于环境变量,最好不要把它设置为其它变量。你可以单独:
  1. echo,%path%
复制代码
试试。
 楼主| 发表于 2022-12-13 12:59:20 | 显示全部楼层
回复 5# qixiaobin0715


    你这个测试可以,%path%只是临时示范的,应用的时候不会这样用
整合一下 看看能否行得通。到时再回来请教。:lol
 楼主| 发表于 2022-12-13 13:22:35 | 显示全部楼层
回复 5# qixiaobin0715


    小写可以加参数吗?还是只能加入d e f g
发表于 2022-12-13 13:51:04 | 显示全部楼层
回复 3# jorlaying

我是小白,不会写,也不知道你具体应用环境,四个选项都指向一个结果,输入只要包含应该也没啥问题
发表于 2022-12-13 14:07:42 | 显示全部楼层
回复 7# jorlaying
打开cmd窗口,输入findstr /?,回车。查看帮助。
 楼主| 发表于 2022-12-13 14:12:16 | 显示全部楼层
回复 9# qixiaobin0715


    已解决,谢谢!加了/I
 楼主| 发表于 2022-12-13 14:14:41 | 显示全部楼层
回复 2# 77七


    我比你更小白。哈哈 你的代码加个/x 应该没问题
发表于 2022-12-13 14:52:34 | 显示全部楼层
回复 11# jorlaying

是,完全匹配..之前看过教程,太枯燥,根本记不住...还是得在实践中学习..现在我记住了
发表于 2022-12-13 14:56:06 | 显示全部楼层

  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
复制代码
 楼主| 发表于 2022-12-13 15:28:55 | 显示全部楼层
回复 13# hfxiang


    厉害厉害,我用你的代码和上面的代码一样都达到了想要的效果。
但是我不明白"_%%a=True"是什么意思,我吧True随便改了一个123也没出错。。?
发表于 2022-12-13 16:38:30 | 显示全部楼层
回复 14# jorlaying


    对,任何字符都可以,用true只是个习惯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 10:14 , Processed in 0.023144 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表