老爸想提取某个目录下一千多个记事本中包含某某关键词的记事本,在Linux下貌似灰常容易,windows倒是有这些个搜索文本内容的软件,但还是不太方便,开始想着用C或者E写一个吧,怎奈百度了半天没找到相关参考代码,倒是有个JAVA的,可惜我不会哈~,然后就在想windows下有没有直接搜内容的命令呢,还真被我找到了——findstr 详情百度(*^__^*) ,固写了个批处理。
findxx.bat(复制到新建记事本并改后缀名txt为bat) https://github.com/zpblog/windows-findstr
@echo off set /p findnum=请输入查询数字: ::findstr /ms %findnum% *.txt md abc%findnum% ::findstr /ms %findnum% *.txt >> tmptxt ::for /f "tokens=1" %%i in (tmptxt) do copy %%i abc%findnum% ::rm tmptxt for /f %%i in ('findstr /ms %findnum% *.txt') do (copy %%i abc%findnum%) pause>nul
注:代码中::后面是注释掉的代码,一开始不知道bat是怎么读取函数返回值,固先输出到文件再读取文件,绕了个圈。
其实我爸是想提取不含某关键字的那些个记事本,还没想到好招,只好先备份一份,然后把含的转移出去或者删除,剩下的就是不含的啦 嘿嘿
具体就是把代码中的copy改成move或者del(记得备份哦)
后续:经过实战,发现一个小问题,这个程序是把搜索结果放在当前目录下的,而搜索也是遍历当前目录,所以造成了一部分的重复查找,结果不受影响,就是影响了点效率,建议把输出目录调整到别处(大批量操作强烈建议修改)
评论列表:
杠杆网
评论于2015-04-15 13:23:52
OK - 回复该评论
评论者
评论于2016-02-26 18:09:31
结果取反不行吗? - 回复该评论
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章
转:如何让 Windows 命令行程序像 Linux & 命令那样在后台运行2023-02-24
转:Linux站点备份打包脚本2020-04-05
Python3串口16进制读写通讯2017-10-13
域账号弱口令批量检查-PowerShell2016-09-22
Bat选择性拷贝文件夹里文件2016-09-13
Bat脚本转换成EXE可执行文件2016-08-29
Windows目标服务器端口监测脚本微信通知2016-08-25
Windows批量建文件夹和寻找目录下空文件夹2016-08-13
bat脚本设置开机启动并去除黑框2015-04-25