[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批量提取N个文本的任意行内容??

本帖最后由 屡败屡战 于 2017-12-25 12:34 编辑

我想求批处理代码,可以实现以下操作
1、批量提取某文件夹下N个文本的任意行内容,任意行的行数不确定,行数最好由自己定(请在代码中注明如何修改行数),输出结果到另一新文本文件中(输出结果.txt)
2、最好输出文件名,作为标识,即在输出结果中,其左列为文件名,右列为提取的任意行的内容

我在网上搜索,有些代码只能输出指定行的内容,但不能输出文件名,望大神门不吝赐教!!

ivor 老师,代码很完美,但还有事求,刚才忘了说,这个文件夹下还有其它子文件夹,不知道这种提取“子文件夹”下的代码,该如何写,其它的与上面说的一样,麻烦了!!

TOP

老师辛苦了,我有5、6万的文本文件,我要测下速度。
另外,望老师提供有关批处理的学习网址,我想学习下

TOP

本帖最后由 屡败屡战 于 2017-12-18 08:52 编辑

这是我找到的批处理代码,其操作是将文本文件,每隔固定行插入一行內容(支持多个文本文件)
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b *.txt') do (
    set line=0
    (for /f "eol= delims=" %%i in (%%~sa) do (
        set /a line+=1
        echo %%i
        if !line! equ 70 echo 插入内容
        if !line! equ 37 echo 插入内容
        if !line! equ 30 echo 插入内容
        if !line! equ 20 echo 插入内容
        if !line! equ 10 echo 插入内容
        if !line! equ 8 echo 插入内容
        if !line! equ 7 echo 插入内容
    ))>$
    move /y $ "%%~a"
)


执行后的效果:(但是这不是我想要的)

【3】 4446
【4】 4447
【5】 4448
【6】 4449
【7】 4450
插入内容
【8】 4451
插入内容
【9】 4452
【10】 4453
插入内容
【11】 4454
【12】 4455


而我想要的效果:

【7】 4450
插入内容 【8】 4451
【9】 4452
插入内容 【10】 4453
【11】 4454
【12】 4455
插入内容 【13】 4456
【14】 4457
插入内容 【15】 4458
【16】 4459
【17】        4460
【18】        4461
【19】        4462
【20】        4463

我的想法是“插入的內容”直接在插入原文档段落的行首之前,而不是插入后再另起一行,我试着改了改,均以失败告终,望老师帮帮忙?? 在源代码上改一改。能实现我的要求。

TOP

老师辛苦了。代码改的完美。
我有个疑问: powershell:代码
dir *.txt -Recurse -Exclude "输出结果.txt"| %{if (Get-Content "$_" -Totalcount 3){-JOIN($_," ",(Get-Content "$_" -Totalcount 3)[-1])}} | sc 输出结果.txt
我把此代码粘贴到txt,另存为测试.ps1,
我用“C:\Windows\System32\powershell.exe”打开此测试.ps1,系统显示无法加载,我搞不懂??望老师指示一下,
我的是win7 32位系统

TOP

本帖最后由 屡败屡战 于 2017-12-18 16:27 编辑

老师好,能否再帮帮忙?
【问题1】
我有很多txt文件,但是关键词不在文件名,而是在txt文件内容里面,批处理如何按照输入的关键词搜索出含有该关键词的txt文件,移动到其它文件夹。

另外关键词有很多,记录在关键词列表里,每行一个关键字,命名为a.txt。我想依据a.txt的关键词,将当前文件夹下(含子文件夹)里的含关键词的txt文件提取出来,移动到其它文件夹(就是以关键词命名文件夹)。这个对我来说很难,能否帮帮忙?


【问题2】
我有大量文本文件,其中內容含大量无用词组,我准备一个“关键词列表.txt”文件,里面有准备删除的关键字,每行一个关键字。
我想执行操作:
      1、要求在同文件夹下(包括子文件夹)里所有文本文件执行操作,删除其与关键词列表.txt文件相符合的关键词,批处理命令该如何写?
      2、延伸一下,如果是批量删除含这些关键饲的“行”,那又该如何操作。

TOP

老师,万分感谢,我都不知该如何感激了!!
老师:我想咨询下,文本文件的标题在文档内容中默让向左对齐,让人浏览恨不舒服,不知遒能否让文档标题居中,像word文档中那样标题是居中的(有居中按钮的),不知道老师有没有什么好的建议??

TOP

老师,如何能在论坛联系到老师,或QQ号、微信什么的,我万分恳求,不知道能否满足我的愿望

TOP

本帖最后由 屡败屡战 于 2017-12-20 09:02 编辑

老师好,问题2-2的代码(是不是用于删除含关键字所在行的代码),点击其运行,系统提示会有错误,操作时无反应。我搞了整晚,没搞出名堂来,不知咋回事?
我的关键字.txt是放在批处理代码的上一层目录的。其关键字(内容)是:(每行一个)
邱隘镇
王松旭
离开家
....



另外我有个请求,有个代码是:
sed -i "s/2   1|/1   1|/g; s/2   2|/1   2|/g" *.txt
该代码是执行多文本多关键字的,但是若替换的内容太多的话,代码里会有一大片,书写很繁琐。我想准备个“替换列表.txt”,其中内容分成两列,一一对应,替换的内容有很多行。
aaa  bbbb
cccc ddd
eee  ffff
...   ...

其中:aaa  ccc  eee 是需要被替换的字符
    bbb ddd  ffff 是替换后的字符
我想更改代码,但是不会读取“替换列表.txt”的内容,望老师指点一下,代码如何改??


另外,我现在每天处理大量的文本文件,其中有很大部分文件是重复,利用“重复文件清理工具”也扫描不出100%重复的,无柰只能一一打开查看,很崩溃,问老师有无好的建议,可以甄别同文件夹下文本文件是否有重复的

TOP

返回列表