在批处理文件中,我有一个字符串abcdefg。我想检查bcd是否在字符串中。

不幸的是,似乎所有的解决方案,我找到搜索一个文件的子字符串,而不是一个字符串的子字符串。

有没有简单的解决方法?


当前回答

更好的答案是:

set "i=hello " world"
set i|find """" >nul && echo contains || echo not_contains

其他回答

ECHO %String%| FINDSTR /C:"%Substring%" && (Instructions)

是的,我们可以在String中找到subString:

echo.%data% | FINDSTR /I "POS">Nul && (SET var=POS) || (SET noVar="variable not found")

echo.%data% | FINDSTR /I "TD1">Nul && (SET var=TD1) || (SET noVar="variable not found")

GOTO %var%

:POS   
echo processes inside POS  
GOTO END

:TD1   
echo processes inside TD1

:END

我通常是这样做的:

Echo.%1 | findstr /C:"%2">nul && (
    REM TRUE
) || (
    REM FALSE
)

例子:

Echo.Hello world | findstr /C:"world">nul && (
    Echo.TRUE
) || (
    Echo.FALSE
)

Echo.Hello world | findstr /C:"World">nul && (Echo.TRUE) || (Echo.FALSE)

输出:

TRUE
FALSE

我不知道这是不是最好的办法。

在Var中查找文本,示例:

var_text="demo string test"
Echo.%var_text% | findstr /C:"test">nul && (
    echo "found test" 
    ) || Echo.%var_text% | findstr /C:"String">nul && (
             echo "found String with S uppercase letter" 
    ) || (
             echo "Not Found " 
    )

传说:

& Execute_that和execute_this || Ex: Execute_that IF_FAIL execute this && Ex: Execute_that IF_SUCCESSFUL执行此操作 >nul命令无回显结果 中 /C:使用字符串作为文字搜索字符串

在文件中搜索子字符串的解决方案也可以搜索字符串,例如。Find或findstr。 在您的情况下,最简单的解决方案是将字符串输送到命令中,而不是提供文件名等。

区分大小写的字符串: Echo "abcdefg" |查找"bcd"

忽略字符串的大小写: find /I "bcd"

如果没有找到匹配,您将在CMD上得到一个空行响应,并且%ERRORLEVEL%设置为1