![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-30 20:24 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]Findstr的怪异用法 |
| 可打印版本 1,823 / 11 |
| 第1楼 sylovanas | 发表于 2008-07-18 23:22 |
| 初级用户 发帖 42 积分 107 | |
|
[已结]Findstr的怪异用法 echo 123456 >1.txt
echo abcdefg >2.txt echo 123gde >3.txt 一般要找上面所列档案内有含123文字的档案 一般方式为 for /f "tokens=*" %%a in ('dir /b ?.txt') do findstr "123" %%a >nul 2>nul && echo %%a 输出结果为 1.txt 3.txt 这样findstr会执行三次 但刚刚发现老外写的批程序用了一个方式,这样findstr只要跑一次节省时间 如下: dir /b ?.txt|findstr -MF:/ "123" 输出结果为 1.txt 3.txt 以前没看过这样的用法 -F:/似乎表示是看前面的输出结果? [ Last edited by HAT on 2008-11-3 at 16:08 ] |
|
| 第2楼 lxmxn | 发表于 2008-07-19 00:19 |
| 版主 发帖 4,938 积分 11,386 | |
|
看看findstr的帮助就知道了。
|
|
| 第3楼 HAT | 发表于 2008-07-19 01:11 |
| 版主 发帖 5,017 积分 9,023 | |
|
把自己没有看到过的用法归纳为“怪异”,是不是稍微有点不恰当呢?
|
|
| 第4楼 knoppix7 | 发表于 2008-07-19 18:39 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
for /f "tokens=*" %%a in ('dir /b ?.txt') do findstr "123" %%a >nul 2>nul && echo %%a
废话木.这里不来三次就是怪事. |
|
| 第5楼 sylovanas | 发表于 2008-07-19 21:41 |
| 初级用户 发帖 42 积分 107 | |
Originally posted by HAT at 2008-7-19 01:11 AM: 下次改进...如果有的话 这只是例子而已...我看到的写法是 前略 For /f "tokens=*" %%g in ( Profiles.folder.dat ) do @( VFind -rtf -s61952 -d+%ninety% "%%~g\??????.exe" |( Findstr -MF:/ "sandbox.*honey.*vmware.*currentuser.*nepenthes" >>d-delA.dat 2>>WowErr.dat )) 后略 我只是把范例简单化而已....不代表就真的看到是那样用。 [ Last edited by sylovanas on 2008-7-19 at 09:44 PM ] |
|
| 第6楼 sylovanas | 发表于 2008-07-19 21:42 |
| 初级用户 发帖 42 积分 107 | |
Originally posted by knoppix7 at 2008-7-19 06:39 PM: 我来蛮多次了,大概学习不够所以等于不到三次 |
|
| 第7楼 sylovanas | 发表于 2008-07-19 21:43 |
| 初级用户 发帖 42 积分 107 | |
Originally posted by lxmxn at 2008-7-19 12:19 AM: 因为看不懂所谓主控台 (stands for console) 是什么意思 ![]() 学习了 |
|
| 第8楼 hmilywenjia | 发表于 2008-11-03 12:00 |
| 新手上路 发帖 5 积分 8 | |
|
findstr可以执行二进制搜索吗?问题我写在下面 问题:
我要用find 或findstr 搜索本地所有盘里的 *.vbp 或 *.dll 文件里是否包含有某个字符串,比如“ET_TCLICK”,并echo出来,提示有或没有,如果有要指出在哪个文件中,因为是在多个文件中搜索,在win2000的查找功能里有这个功能,但xp没有,所以想自己用findstr命令看能否做到,望高人指点,留个QQ,如果那位高人帮解决了,希望能告知下,谢谢,QQ:147180994 |
|
| 第9楼 everest79 | 发表于 2008-11-03 20:51 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
findstr /mf:/ "123"
Findstr /m /f:/ "123" /M 如果文件含有匹配项,只打印其文件名 /F:file 从指定文件读文件列表 (/ 代表控制台)。 findstr的/f:/参数设置findstr打管道符接受被搜索的文件,也就是来自dir /b ?.txt的文件列表,其实在findstr中可以更简化为findstr /m /s "123" ?.txt |
|
| 第10楼 HAT | 发表于 2008-11-03 20:57 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 8楼 |
|
| 第11楼 qvdyw3934 | 发表于 2008-11-03 21:44 |
| 新手上路 发帖 13 积分 14 | |
|
小弟还不知有这种用法
真是长见识了.... |
|
| 第12楼 pgfj18 | 发表于 2009-04-27 12:21 |
| 新手上路 发帖 3 积分 4 | |
|
以前还未见过这用法,真是开眼界了,谢谢啦
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |