2

我有一个 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"

但它只是打开了文件,就好像我双击了文件一样。

4

2 回答 2

2

谢谢大家,但我发现这有效:

Set pattern=name

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

    If Not !patternReplaced! == !filenameStr! echo "contains pattern"
)
于 2012-08-13T13:51:43.167 回答
0

Rob van der Woude 的 Scripting Pages是解决此类 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
)

如果这不是您正在寻找的内容,请查看“操作方法”部分以查看其他一些解决方案

于 2012-08-13T13:43:36.433 回答