Windows 7 批脚本:在字符串中查找模式
我有一个for循环,允许我访问文件夹中的文件名,我需要检查该文件名是否包含字符串 例如,文件名:“C:\Temp\hello.cs” 要查找的模式:“C:\Temp\h” 这方面的伪代码是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" 但它只是打开了文件,就像我双
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…