(转)findstr 命令学习

[size=small]findstr 命令学习

findstr 是 Windows 自带的一个实用程序,用来查找文件中的字符串,支持正则表达式。

命令行如下:

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]
strings [[drive:][path]filename[ ...]]

/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索
匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF[LINE] 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
[drive:][path]filename
指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
"hello there"。

一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类别出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
[class] 字符类别: 任何在字符集中的字符
[^class] 补字符类别: 任何不在字符集中的字符
[x-y] 范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\<xyz 字位置: 字的开始
xyz\> 字位置: 字的结束

和其它工具结合起来使用时比较方便,下面的命令演示了结合 dumpbin 工具查找 ntdll.dll 导出表中所有和 port 相关的函数。

d:\>dumpbin /exports c:\WINDOWS\system32\ntdll.dll | findstr /i port
Section contains the following exports for ntdll.dll
86 4E 0000D379 NtAcceptConnectPort = _NtAcceptConnectPort@24
115 6B 0000D5DA NtCompleteConnectPort = _ZwCompleteConnectPort@4
117 6D 0000D604 NtConnectPort = _NtConnectPort@32
133 7D 0000D73F NtCreatePort = _NtCreatePort@20
143 87 0000D811 NtCreateWaitablePort = _ZwCreateWaitablePort@20
178 AA 0000DADB NtImpersonateClientOfPort = _ZwImpersonateClientOfPort@8
184 B0 0000DB59 NtListenPort = _NtListenPort@8
242 EA 0000E006 NtQueryInformationPort = _ZwQueryInformationPort@20
255 F7 0000EAB0 NtQueryPortInformationProcess = _ZwQueryPortInformationProcess@0
277 10D 0000E2D0 NtRegisterThreadTerminatePort = _NtRegisterThreadTerminatePort@4
285 115 0000E363 NtReplyPort = _ZwReplyPort@8
286 116 0000E378 NtReplyWaitReceivePort = _NtReplyWaitReceivePort@16
287 117 0000E38D NtReplyWaitReceivePortEx = _ZwReplyWaitReceivePortEx@20
288 118 0000E3A2 NtReplyWaitReplyPort = _NtReplyWaitReplyPort@8
290 11A 0000E3CC NtRequestPort = _NtRequestPort@8
291 11B 0000E3E1 NtRequestWaitReplyPort = _NtRequestWaitReplyPort@12
301 125 0000E4B3 NtSecureConnectPort = _ZwSecureConnectPort@36
306 12A 0000E51C NtSetDefaultHardErrorPort = _NtSetDefaultHardErrorPort@4
442 1B3 00058037 RtlComputeImportTableHash = _RtlComputeImportTableHash@12
896 37F 0000D379 ZwAcceptConnectPort = _NtAcceptConnectPort@24
925 39C 0000D5DA ZwCompleteConnectPort = _ZwCompleteConnectPort@4
927 39E 0000D604 ZwConnectPort = _NtConnectPort@32
943 3AE 0000D73F ZwCreatePort = _NtCreatePort@20
953 3B8 0000D811 ZwCreateWaitablePort = _ZwCreateWaitablePort@20
987 3DA 0000DADB ZwImpersonateClientOfPort = _ZwImpersonateClientOfPort@8
993 3E0 0000DB59 ZwListenPort = _NtListenPort@8
1051 41A 0000E006 ZwQueryInformationPort = _ZwQueryInformationPort@20
1064 427 0000EAB0 ZwQueryPortInformationProcess = _ZwQueryPortInformationProcess@0
1086 43D 0000E2D0 ZwRegisterThreadTerminatePort = _NtRegisterThreadTerminatePort@4
1094 445 0000E363 ZwReplyPort = _ZwReplyPort@8
1095 446 0000E378 ZwReplyWaitReceivePort = _NtReplyWaitReceivePort@16
1096 447 0000E38D ZwReplyWaitReceivePortEx = _ZwReplyWaitReceivePortEx@20
1097 448 0000E3A2 ZwReplyWaitReplyPort = _NtReplyWaitReplyPort@8
1099 44A 0000E3CC ZwRequestPort = _NtRequestPort@8
1100 44B 0000E3E1 ZwRequestWaitReplyPort = _NtRequestWaitReplyPort@12
1110 455 0000E4B3 ZwSecureConnectPort = _ZwSecureConnectPort@36
1115 45A 0000E51C ZwSetDefaultHardErrorPort = _NtSetDefaultHardErrorPort@4[/size]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值