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

3
我需要编写一个批处理文件,用于检查变量是否包含特定的值。 我尝试了以下操作:
If "%%a"=="%%a:%pattern%" (
    echo Yes
) else (
   echo No
)

输入样例: %%a="鲍勃·宾森" %patern%="宾森"

我无法得到"Yes"的输出!有人能告诉我错了什么或者给出一个他/她如何完成的例子吗?

提前致谢。

1个回答

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

非常感谢您的帮助 :) - Marwan Jaber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接