如何使用findstr搜索多个不同的字符串?

时间:2016-03-21 01:09:00

标签: regex windows batch-file cmd command-prompt

我试图将一些Bash代码转换为Windows批处理脚本。我在Bash脚本中的一行是

if echo "$*" | egrep -q -- '-?|-h|--help'; then

基本上,它会搜索选项-?-h--help的所有脚本参数。我想知道的是,我如何将其转换为在Windows上使用findstr?以下是我到目前为止的情况:

set args=%*
echo %args:"=% | findstr %= What goes here? =% > NUL
if %ERRORLEVEL% == 0 (
)

任何帮助将不胜感激,谢谢! (我已尝试运行findstr /?,但它似乎没有提及有关匹配多个字符串的任何内容。)

2 个答案:

答案 0 :(得分:2)

这样做的一种方法:

findstr /c:"-?" /c:"-h" /c:"--help" 

答案 1 :(得分:1)

findstr /r /c:"\<-?\>" /c:"\<-h\>" /c:"\<--help\>"

\<表示“单词的开头”,\>“单词结尾”(以防止误报(例如-hello--huh,...)< / p>

/r使正则表达式能够使用\<\>