在 .BAT 中使用正则表达式查找子字符串

dis*_*992 2 regex windows batch-file

如何检查批处理文件的字符串变量中包含的子字符串?

例如:

set var1=foobarfoo

set regexp=.*bar.*

if [check var1 by regexp] echo "YES"
Run Code Online (Sandbox Code Playgroud)

就我而言,它必须只能通过正则表达式进行检查,并且只能在 .bat 文件中进行检查。

Avi*_*urg 5

调整这里找到的答案给出

@echo off
set var1=foobarfoo
set "regexp=.*bar.*"
echo %var1%
echo %regexp%
setlocal enableDelayedExpansion
echo(%var1%|findstr /r /c:"%regexp%" >nul && (
    echo FOUND
    rem any commands can go here
) || (
    echo NOT FOUND
    rem any commands can go here
)
Run Code Online (Sandbox Code Playgroud)