bat文件脚本检查字符串是否包含其他字符串

时间:2015-06-23 07:56:30

标签: windows batch-file cmd

我需要编写一个批处理文件来检查变量是否包含特定值。 我试着做以下事情:

If "%%a"=="%%a:%pattern%" (
    echo Yes
) else (
   echo No
)

输入示例: %% a =“鲍勃·宾森” %百通%= “binson”

我永远不会被打印出来! 任何人都可以告诉我错过了什么,或举例说明他将如何做到这一点?

先谢谢

1 个答案:

答案 0 :(得分:1)

for可替换参数中不提供子串操作。您需要将数据分配给变量,然后对此变量执行操作

@echo off
    setlocal enableextensions disabledelayedexpansion

    >"tempFile" (
        echo bob binson
        echo ted jones
        echo binson
    )

    set "pattern=binson"

    for /f "usebackq delims=" %%a in ("tempFile") do (
        echo data: %%a

        set "line=%%a"
        setlocal enabledelayedexpansion
        if "!line:%pattern%=!"=="!line!" (
            echo .... pattern not found
        ) else (
            echo .... pattern found
        )
        endlocal
    )

    del /q tempFile