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

[文件操作] 批处理如何删除文本中含有指定字符串的行?

bat脚本循环嵌套的问题
大致目的是删除一组文件中包含一组关键词中任意一个所在行的文本。
就是判定某一文本文件中的某一行是否包含关键字,若包含则不保留,包含则输出到另一路径下的同名文件
  1. for /f %%i in (一组文件) do (
  2. for /f %%j in (%%i) do (
  3. for /f %%k in (一组关键词.txt) do (
  4. echo %%j | find /v "%%k">>新路径\%%i
  5. )))
复制代码
但是循环不论如何嵌套输出里面都会有重复,求解

你的描述 从一批文件里删除分别含多个关键词的行并写入同一个文件,改了一下,写入多个文件
  1. for /f %%g in ('dir /b/on *.txt') do findstr /iv "词1 词2 词3" "%%g">>new%%g
复制代码
目的,学习批处理

TOP

本帖最后由 cby120 于 2018-6-17 07:57 编辑

晚上脑子不好使。。已改,每个文件里面还是都有重复,先遍历文件或关键词都不行,会以不同的方式重复。一会把脚本和测试文件贴上

TOP

本帖最后由 cby120 于 2018-6-17 07:27 编辑

回复 2# hlzj88
findstr可以加多个关键词啊!这个应该能行。试试
但是还有问题,关键词比较长,中间有空格怎么办?可以加双引号吗?

TOP

回复 4# cby120


同时搜索多个字符串
  1. findstr /i /c:"www" /c:"bat home" /c:"net" 1.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

大致目的是删除一组文件中包含一组关键词中任意一个所在行的文本。

看了半天,实现不明白,楼主到底要表达什么意思.
看明白的举个手!!
QQ 33892006

TOP

本帖最后由 cby120 于 2018-6-17 17:12 编辑

先把码贴出来吧。。表达能力有限
  1. :Set1
  2. set sp=.
  3. set /p sp="Please enter the directory of subscript files:"
  4. :Set2
  5. set tp=.
  6. set /p tp="Please enter the target path for the output:"
  7. dir /b /on %sp%>>temp.txt
  8. echo on
  9. for /f %%i in (temp.txt) do (
  10. for /f "delims=" %%j in (%sp%\%%i) do (
  11. echo %%j | findstr /v /c:"%text%" >>%tp%\%%i
  12. ))
  13. del /f /q temp.txt
  14. pause
复制代码
text是关键字

TOP

现在依然有问题,就是待处理的文本包含&字符,在第11行echo的时候会被识别为command1&command2的格式,执行&后面的文本。但是也不能对文本里面的每一个&转义,echo也不能加双引号,会直接echo出来,如何避免变量%%j里面的&问题呢?

TOP

比如这一行
  1. Style: Default,方正黑体_GBK,20,&H00FFFFFF,&HF0000000,&H00000000,&H32000000,0,0,0,0,100,100,0,0,1,2,1,2,5,5,2,134
复制代码

TOP

回复 8# cby120


    放心,%%j中不会出现&被转义的问题,可以测试一下

TOP

回复 10# 0000 额其实是需要转义%j包含的&字符,测了有问题。。会报错,说&后面的。。。不是命令,也不是可执行文件。。。比如H00FFFFFF
输出到文本文件的内容就只有&前的字符

TOP

  1. findstr /ivg:关键词.log 文本.txt
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 cby120 于 2018-6-17 20:32 编辑

回复 12# zaqmlp
没太懂,请问如何输出到文件呢?以及文本文件编码不同,UTF-8编码使用/i开关好像会乱码,求解

TOP

还想问如何保留空行?

TOP

这么多人累的哼哧哼哧的,楼主可以放个样本上来吗,,大家横竖在摸象。你表达清楚些
目的,学习批处理

TOP

返回列表