我有一个带有一堆字符串的文件myFile.txt
。我编写了以下批处理文件来遍历这些行,如果它等于特定字符串,则打印一行(为了演示,我现在选择字符串foo
):
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%i in (myFile.txt) do (
line=%%i
if !line! EQU foo* (
echo !line!
)
)
在我的应用程序中,我不仅需要打印与foo
完全匹配的行,还需要打印与fooBar
,fooBarFred
,fooFred
匹配的行,...这就是我在那里放一张通配符的原因。
但它不起作用..
请帮忙。
答案 0 :(得分:4)
findstr /b "foo" myfile.txt
/b
:行应以字符串
也可能有用:
/i
:忽略大写(找foo,Foo,fOO,...)
有关更多选项,请参阅findstr /?
答案 1 :(得分:3)
字符串比较不允许使用通配符。
你可以通过子线你的线来简化它
但首先你应该修改你的代码
它必须是set line=%%i
而不是line=%%i
。
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%i in (myFile.txt) do (
set "line=%%i"
set "first=!line:~0,3!"
if "!first!" EQU "foo" (
echo(!line!
)
)