批处理学习findstr篇

三、findstr 篇 
        我最钟爱的命令,可惜外部命令的启动速度太慢,所以实际运用时较少露面。 
findstr /s /m .* *.* 
::其实findstr也是一个dir,虽然比dir慢些,却多了查找文件内容的功能 
复制代码 
findstr /n .* 1.txt|findstr "^5000:" 
::非常实用的取指定行的方法,配合正则可以取指定范围之内的行 
复制代码 
set /p n=请输入数字或大小写字母 
(echo !n!)|findstr /i "[0-9a-Z]"&&echo 输入有误! 
::这个够实用吧?不解释 
复制代码 
dir|findstr ['-Z] 
::利用findstr和if命令中字符的实际大小顺序实现查找含有宽字符的行 
复制代码 
findstr /x ".........." 1.txt 
::查找1.txt中10字节的行 
复制代码 
(type 1.txt&echo;)|findstr /o .*|more +1 
::加上for,很容易获取1.txt每行的字节数 
复制代码 
findstr>1.txt /m /p .* *.* 
dir /b /a-d|findstr>2.txt /v /i /m /g:1.txt 
::获取含有不可打印字符的文件名,关键是findstr取集 
复制代码 
findstr "^Rar!" /g:1.txt 
::此处1.txt是上个技巧的1.txt,内容是所有含不可打印字符的文件列表,此技巧可搜索rar文件,虽然简 

单,但是至今也未出错过。 
复制代码 
more>tmp +2 1.txt 
findstr>前两行.txt /x /v /g:1.txt 2.txt 
::有时候可用此办法获取前几行,当然,绝大部分情况下没有for /f合适,而且存在特殊字符bug[/code

[code]] @echo off 
findstr /n .* 1.txt>tmp1 
find /n /v "" 2.txt|more>tmp2 +2 
for /f "tokens=2*delims=]:" %%a in ('fc /n /lb10000 tmp1 tmp2^|sort') do ( 
   echo;%%b 
del tmp? 
pause 
::qzwqzw首创用fc /n同时输出双文本的思路,但是存在排序有可能被打乱的缺陷,所以加了个find弥补一 下 

转载于:https://my.oschina.net/ypimgt/blog/61722

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值