11

我想在无法安装任何东西的 Windows 机器上执行类似“dsquery * | grep asdf”的操作。有任何想法吗?

谢谢你。

4

4 回答 4

21

findstr

dsquery * | findstr "asdf"
于 2009-05-14T15:28:18.187 回答
10

findstr 命令就是您要查找的内容。它与 grep 有点不同,但你可以做一些相同的事情。

    C:\Working>findstr /?
    在文件中搜索字符串。

    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [ /F:文件]
            [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
            字符串 [[驱动器:][路径]文件名[...]]

      /B 如果在行首,则匹配模式。
      /E 在行尾匹配模式。
      /L 按字面意思使用搜索字符串。
      /R 使用搜索字符串作为正则表达式。
      /S 在当前目录和所有目录中搜索匹配的文件
                 子目录。
      /I 指定搜索不区分大小写。
      /X 打印完全匹配的行。
      /V 仅打印不包含匹配项的行。
      /N 在匹配的每一行之前打印行号。
      /M 如果文件包含匹配项,则仅打印文件名。
      /O 在每个匹配行之前打印字符偏移量。
      /P 跳过包含不可打印字符的文件。
      /OFF[LINE] 不要跳过设置了脱机属性的文件。
      /A:attr 用两个十六进制数字指定颜色属性。见“色/?”
      /F:file 从指定文件中读取文件列表(/ 代表控制台)。
      /C:string 使用指定的字符串作为文字搜索字符串。
      /G:file 从指定文件中获取搜索字符串(/ 代表控制台)。
      /D:dir 搜索以分号分隔的目录列表
      字符串 要搜索的文本。
      [驱动器:][路径]文件名
                 指定要搜索的一个或多个文件。

    除非参数有前缀,否则使用空格分隔多个搜索字符串
    与 /C。例如,'FINDSTR "hello there" xy' 搜索 "hello" 或
    "there" in file xy 'FINDSTR /C:"hello there" xy' 搜索
    文件 xy 中的“你好”

    正则表达式快速参考:
      . 通配符:任何字符
      * 重复:前一个字符或类出现零次或多次
      ^ 行位置:行首
      $ 行位置:行尾
      [class] 字符类:集合中的任意一个字符
      [^class] 逆类:任何一个不在集合中的字符
      [xy] 范围:指定范围内的任意字符
      \x 转义:元字符 x 的字面使用
      \ 词位置:词尾

    有关 FINDSTR 正则表达式的完整信息,请参阅在线命令
    参考。
于 2009-05-14T15:33:46.410 回答
2
dsquery * | find "asdf"
于 2009-05-14T15:27:04.833 回答
0

“查找”出现在 DOS 时代。“findstr”比“find”更新且功能更丰富

于 2009-05-14T15:33:06.770 回答