找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27041|回复: 5

[文本处理] [已解决]批处理如何提取多个txt文本中含指定字符串/关键词的行并写入一个txt中?

[复制链接]
发表于 2016-4-19 10:48:46 | 显示全部楼层 |阅读模式
本帖最后由 ychloli 于 2016-4-20 08:41 编辑

共有txt365个,命名格式为日期20150101-20151231,需提取txt中的指定行
例:
文件名:20150101.txt  
内容格式:
10000 dajskfjasl
10001 fsdjghsjkd
..............................
20000 dhfsjkfhs
.............................
需按照关键字20000提取行:20000 dhfsjkfhs
并写入到新的20000.txt中,写成365行,比如:
20150101 20000 dhfsjkfhs
20150102 20000 ..............
..........................................
..........................................
20151231 20000 ..............
谢谢各位大神。我正在学习批处理,因为我的单个txt数据很大,源文件我就不上传了。希望大神们多多指导!
发表于 2016-4-19 17:58:42 | 显示全部楼层
  1. @set b=20000
  2. @cd.>t.txt&for /f "delims=" %%1 in ('dir/b *.txt')do @findstr "^%b%" %%1>>%b%.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
ychloli + 1 谢谢大神帮助

查看全部评分

 楼主| 发表于 2016-4-19 20:20:22 | 显示全部楼层
回复 2# Nsqs


    楼上这位大神,谢谢赐教,但是我运行了一下貌似有点问题啊。写的是空文件。麻烦您帮忙看下谢谢!
 楼主| 发表于 2016-4-19 20:21:32 | 显示全部楼层
@echo off & setlocal EnableDelayedExpansion
(for %%f in (*.txt) do (
for /f "tokens=1-5" %%a in (%%~sf) do (
if "%%a"=="20000" (
set "20000=%%a%%b%%c%%d%%e"
echo %%a !20000! >con
)
)
echo !20000!
)) > 20000.txt
我写的这个很繁琐的样子,不过总算可以导出关键字那一行了(源文件每行只有五列),但是不知道怎么加文件名中的日期进去。。。求修改
发表于 2016-4-19 20:29:37 | 显示全部楼层
回复 4# ychloli
一句find的事
  1. @findstr "2000" *.txt>2000.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
ychloli + 1 感谢分享

查看全部评分

 楼主| 发表于 2016-4-19 21:59:25 | 显示全部楼层
回复 5# happy886rr


    大神,给跪了!受我一拜!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:29 , Processed in 0.019923 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表