2

如何检查某些字符串(用于记录的文本文件中的行)是否以批处理中的特定单词开头?

我知道如何检查句子/行(字符串)中是否存在单词(子字符串),但是如何检查天气它以这个单词开头?

谢谢 :)

4

1 回答 1

8

这可以这样做FINDSTR

FINDSTR "^searchterm"

搜索表达式的^开头指定您正在查找专门位于行首的子字符串。

请注意,默认情况下FINDSTR执行区分大小写的搜索。要不考虑字母大小写进行搜索,请指定/I开关:

FINDSTR /I "^searchterm"

可以指定要搜索的源:

  • 作为参数:

    FINDSTR /I "^searchterm" filename
    
  • 使用stdin重定向:

    FINDSTR /I "^searchterm" < filename
    
  • 使用管道:

    command | FINDSTR /I "^searchterm"
    

    (在这种情况下,源是 的输出command

如果要搜索多个文件,特别是如果它们位于同一目录或目录树中,使用上述三种模式中的第一种模式可能是最简单的,因为filename在这种情况下,可以是掩码:

FINDSTR /I "^searchterm" D:\path\to\files*.ext

以上将仅搜索指定目录中的文件。要搜索整个树,即包括所有子目录,请添加/S开关:

FINDSTR /I /S "^searchterm" D:\path\to\files*.ext

其他有用的选项可以在内置帮助 (run FINDSTR /?) 中找到。

于 2013-02-04T11:38:48.697 回答