1. 关于多打 ":", b :b 加不加冒号都代表标签"b"
2. 楼主觉得&&和||会出错, 尽管放心, 当找到"bb", &&代表执行成功跳转到:c, 反之, || 前面找不到"bb"执行错误跳转到:d. 绝对不会出现跳到c又跳到d的情况. 具体多试试就知道了.
来个原创, 不用find, findstr照样查找变量中是否存在特定字符串.
@echo off
:: 用来检测输入中是否含有"yes"字符串
:: 区分大小写!
set /p ii=请输入字符串:
setlocal enabledelayedexpansion
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
)
if "%form%"=="1" (
echo 输入的字符串中包含"yes"
) else (
echo 不包含"yes"字符串.
)
pause
更简单的代码:
@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%
goto go
)
cls
if "%form%"=="1" (
echo yes
) else (
echo no
)
pause
Last edited by pengfei on 2006-10-19 at 09:40 ]