bat获取java文件行数_批处理-使用Find命令批量提取文件中指定关键字的行数

使用批处理脚本,结合for循环和find命令,统计多个以IP地址命名的文本文件中特定关键字的行数。针对文件路径含有空格的问题,通过for的扩展参数%%~si获取不含空格的短路径。最终通过type命令和find配合,只输出行数,并将文件名和结果写入result.txt。
摘要由CSDN通过智能技术生成

现有若干以IP地址命名的文件,192.168.1.1.txt,192.168.1.2.txt等等等。。。需要统计每个文件中指定关键字所占的行数。这种重复性的字符查找工作用批处理来完成自然是再适合不过啦!整体思路很简单,使用for循环来遍历文件,使用find  /c命令来进行关键字的查找,然后将结果输出到另一个文件,内容格式为:ip:n。关键代码如下:

for %%i in (*.txt) do (

find /c "keyword" %%i >> result.txt)

然而运行时提示:系统找不到指定的文件。经过测试发现,当find命令的目标文件路径中存在空格时,就会报出这样的错误。而当前的文件目录就是位于桌面,也就是“C:\Documents and Settings\Administrator\桌面\文件”,其中是有空格的。

为了解决这个问题,我们可以使用for命令的扩展参数%%~si(详见for /?)来替代%%i,它可以使用一个不含空格的短路径来代替较长的文件路径(包括文件名)。OK,程序运行的很顺利,我们满怀期待的打开result.txt,看到如下内容:“----------D:\DESKTOP\193920~1.TXT: 2”(本文是在家用的win7系统上写的,桌面路径在D盘,但足以说明文件名的问题)。可以看到,使用find /c 对文件进行查找时,结果包含文件路径和行数。然而我们由于使用了短路径,以至于连文件名也被压缩了,我们无从分辨谁是谁了TAT。我们当然可以在find语句后面再使用echo %%ni来输出一个不带路径的标准文件名,但是这个文件名会写入到下一行;而且短路径不但没有用而且严重影响了结果的视觉效果和格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值