【问题标题】:How to use findstr to search for multiple different strings?如何使用 findstr 搜索多个不同的字符串?
【发布时间】:2016-03-21 01:09:00
【问题描述】:

我正在尝试将一些 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 /?,但它似乎没有提到任何关于匹配多个字符串的内容。)

【问题讨论】:

  • 建议使用比较运算符EQU 而不是==ErrorLevel 进行真正的数值比较; == 强制执行字符串比较...

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


【解决方案1】:

一种方法:

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

【讨论】:

  • 感谢您的回答!只有一个问题:使用findstr /c:string 是否等同于findstr /c:"string" 形式?
  • 嗯...是的,我想是的。我只使用带引号的形式,这就是我的建议 - 但如果搜索字符串不包含空格或特殊字符,我认为这并不重要。
  • 感谢您的回答!
【解决方案2】:
findstr /r /c:"\<-?\>" /c:"\<-h\>" /c:"\<--help\>"

\&lt; 表示“单词开头”,\&gt;“单词结尾”(防止误报(例如-hello--huh、...)

/r 使正则表达式能够使用\&lt;\&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多