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

[文本处理] bat脚本,匹配所有含有关键字的行,在行后增加一段字符串

bat脚本,匹配所有含有关键字的行,在行后增加一段字符串,现在这个脚本只能匹配到首个关键字行。
我现在想把文件内所有匹配到关键字的行后,都增加一段字符串,应该怎么改啊,或者不在这个基础上,重新写一个也行。
-----------------------------------------------------------------------
  1. @echo off
  2. set "file=文本.txt"
  3. for /f "delims=:" %%a in ('findstr /nl /c:"关键词" "%file%"') do set n=%%a&goto :end
  4. :end
  5. if defined n (
  6. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%file%"') do (
  7. if "%%a" equ "%n%" (echo;%%b添加的内容) else echo;%%b
  8. ))>"$tmp.txt"
  9. rem move "$tmp.txt" "%file%"
  10. ) else echo;Not Found
  11. pause
复制代码
-----------------------------------------------------------------------
辛苦各位大神

匹配:只要有关键词就添加。不考虑某些特殊字符。
  1. for /f "delims=" %%a in (文本.txt) do echo %%a|findstr /i "关键词">nul && echo %%a"添加的内容"||echo %%a
复制代码
===================
如需匹配所有的关键字,最好把关键字列表,再比对。

TOP

返回列表