现在的位置: 首页 > 综合 > 正文

dos命令之检查变量包含某些字符

2013年10月13日 ⁄ 综合 ⁄ 共 1259字 ⁄ 字号 评论关闭

如题.比如我有个变量A,现在想检查A中是不是包含有BB.该如何写呢?自己试了好长时间都没成功
dos命令大全
echo %a%|findstr /i "bb" && echo 包含bb. || echo 不存在bb.

查了一下命令手册:&&符号也是允许在一行中使用2个以上不同的命令,当第一个命令执行失败后后续的命令将不会再被执行

echo %a%|findstr /i "bb" && goto c || goto d
对于这个代码,我的理解是:如果找不到bb,直接跳到d;如果找到bb,然后跳到c,再跳到d.这里运行c就会问题.而且这个代码是多余的显示一行%a%.(而且实际测试也是这样的)

所以我觉得这个代码不够完美.感觉可能用errolevel实现可能好点.不知道理解的对不对,说错了,大侠不要生气啊

1. 关于多打 ":", b :b 加不加冒号都代表标签"b"

dos命令大全
2. 楼主觉得&&和||会出错, 尽管放心, 当找到"bb", &&代表执行成功跳转到:c, 反之, || 前面找不到"bb"执行错误跳转到:d. 绝对不会出现跳到c又跳到d的情况. 具体多试试就知道了.

来个原创, 不用find, findstr照样查找变量中是否存在特定字符串.CODE: Copy to clipboard@echo off
:: 用来检测输入中是否含有"yes"字符串
:: 区分大小写!
set /p ii=请输入字符串:
setlocal enabledelayedexpansion
dos命令大全
set form=0
set ii=%ii%@
:go
if not "%ii:~0,1%"=="@" (
set /a num+=1
if /i "!ii:~0,1!"=="y" set /a aa=!num!+1
if "!num!"=="!aa!" if /i "!ii:~0,1!"=="e" set /a bb=!num!+1
if "!num!"=="!bb!" if /i "!ii:~0,1!"=="s" set form=1
set ii=%ii:~1%
goto go
)dos之家

if "%form%"=="1" (
dos命令大全
echo 输入的字符串中包含"yes"
) else (
echo 不包含"yes"字符串.
)
pause
更简单的代码:CODE: Copy to clipboard@echo off
set /p ii=请输入字符串:
setlocal enabledelayedexpansion
set form=0
set ii=%ii%@
:go
if not "%ii:~0,1%"=="@" (
if /i "!ii:~0,3!"=="yes" set form=1
set ii=%ii:~1%
dos命令大全
goto go
)
cls
if "%form%"=="1" (
echo yes
) else (
echo no
)
pause

dos命令大全

查了一下命令手册:&&符号也是允许在一行中使用2个以上不同的命令,当第一个命令执行失败后后续的命令将不会再被执行

echo %a%|findstr /i " ...
echo %a%|findstr /i "bb">nul && goto c ||
“dos命令大全”www.daohei.com“dos之家”

抱歉!评论已关闭.