cmd 批处理命令 获取 findstr 匹配结果

cmd 批处理命令获取匹配结果
需求如下:
我要判断 %var% 是否满足我自己定义的一个正则
比如 echo abc|findstr "[0-9]*" 这样的话只能输出 但是我不能获取这个匹配结果的值
最好能把匹配后的值放到一个新的变量里去,这样我只要判断这个变量是否为空即可

1、打开运行,并输入“cmd”。

2、回车后命令提示符自动打开。

3、在命令提示符中输入“findstr”命令。

4、设定要查询的字符。

5、设定要查询的文件路径。

6、点击回车,查看查询结果,可以看到,含有“不”字的行,都展示了出来。

7、如果要查询字符“的”,就获得了匹配结果,如下图就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
有点疑问,你那查找字符串的表达式有问题 findstr "[0-9]*" 相当于无限制查找,没实际意义。只当你敲错了(下面以查纯数字串为例)。
用for /f 命令可以把一命令显示的结果赋给如%a这种变量进行各种操作,可以直接操作,也可保存为另一变量中备用,详for/?
for /f "delims=" %%a in ('echo %var%^|findstr "^[0-9]*$" 2^>nul')do set newvar=%%a
但对于你所说的只要判断是否为空的用途,我推荐另一方式:
echo %var%|findstr "^[0-9]*$" >nul&&echo 结果不为空||echo 结果为空本回答被提问者和网友采纳
第2个回答  2011-01-15
@echo off
set /p a=请输入你要查询的变量:
findstr "%a%" "1.txt"
pause

1.txt为你要查询的文件

我能想到的就是这样了。。。
第3个回答  2011-01-23
if %errorlevel% == 0

用这个语句判断上一个语句的执行结果。
第4个回答  2011-01-24
echo abc|findstr "[0-9]*"&&set flag=Y

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网