Windows 7 批脚本:在字符串中查找模式

Windows 7 批脚本:在字符串中查找模式,windows-7,command-line,batch-file,pattern-matching,Windows 7,Command Line,Batch File,Pattern Matching,我有一个for循环,允许我访问文件夹中的文件名,我需要检查该文件名是否包含字符串 例如,文件名:“C:\Temp\hello.cs” 要查找的模式:“C:\Temp\h” 这方面的伪代码是 IF filename.Contains(pattern) then // DO SOMETHING END IF 我试过这个: %%i|find %pattern% >nul if not errorlevel 1 echo "Pattern matched" 但它只是打开了文件,就像我双

我有一个for循环,允许我访问文件夹中的文件名,我需要检查该文件名是否包含字符串

例如,文件名:“C:\Temp\hello.cs” 要查找的模式:“C:\Temp\h”

这方面的伪代码是

IF filename.Contains(pattern) then
    // DO SOMETHING
END IF
我试过这个:

%%i|find %pattern% >nul
if not errorlevel 1 echo "Pattern matched"
但它只是打开了文件,就像我双击了文件一样。

是解决此类DOS/批处理文件问题的绝佳资源。据我所见,像这样的东西可能适合你:

ECHO OFF

FOR %%A IN (C:\Temp\h*) DO (
    ECHO ---
    ECHO Pattern matched
    ECHO Name in 8.3 notation : %%~snA
    ECHO Fully Qualified Path : %%~fA
)

如果这不是您想要的,请查看“”部分以查看其他解决方案。

谢谢各位,但我发现这很有效:

Set pattern=name

for .... do (
    Set filenameStr=%%i
    Set patternReplaced=!filenameStr:%pattern%=?!

    If Not !patternReplaced! == !filenameStr! echo "contains pattern"
)

您忘记了回显:
echo%%i | find…