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

[文本处理] [已解决]求BAT脚本给子文件夹所有txt的行首行尾添加指定关键词

以前找过很多类似bat。都是只能修改一个txt的

例如
  1. set /p Str=<222.txt
  2. echo "C:\Program Files\WinRAR\WinRAR.exe" a -d-ibck "cd1.rar" %Str%>333.txt
  3. more +1<"222.txt" >>333.txt
复制代码
  1. @echo off
  2. set "strOne=222
  3. set "strTwo=333
  4. for /f "tokens=*" %%i in (1.txt) do (
  5. >>testNew.txt echo %strOne%%%i%strTwo%
  6. )
  7. pause
复制代码
上面两个代码都可以使用。。。但是只能应用在一个txt。。如果txt很多,以及文件夹很多都不行。。。求大佬帮帮忙。。。。

目前我都靠上面两个将就用了几年了。。。。。。一直不好意思问

回复 5# cutebe


    没用过这种。。但是感谢你的回复。。。楼下已帮忙解决了

TOP

纯批,速度较慢
添加第一行数据
  1. @echo off & cd /d "%~dp0"
  2. for /r %%i in (*.txt) do (
  3. echo %%i
  4. (
  5. echo "C:\Program Files\WinRAR\WinRAR.exe" a -d-ibck "cd1.rar"
  6. type "%%i"
  7. )>"%%i_NEW"
  8. move /y "%%i_NEW" "%%i" >nul 2>nul
  9. echo ----------------------
  10. )
  11. pause&exit
复制代码
每行首未尾添加数据
  1. @echo off & cd /d "%~dp0"
  2. set "head=法规规范"
  3. set "foot=岁的法国但是"
  4. for /r %%i in (*.txt) do (
  5. echo %%i
  6. (
  7. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%i"') do if "%%b"=="" ( echo. ) else ( echo %head%%%b%foot% )
  8. )>"%%i_NEW"
  9. move /y "%%i_NEW" "%%i" >nul 2>nul
  10. echo ----------------------
  11. )
  12. pause&exit
复制代码
1

评分人数

    • 8532200: 非常感谢你的回复,实测毫无问题技术 + 1

TOP

操作前请备份原文件!

本帖最后由 cutebe 于 2021-5-1 22:46 编辑

sed.exe三方工具从论坛下载:http://www.bathome.net/s/tool/index.html
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 2# cutebe


    我只复制了类似这行


sed -r -i "s/^.+$/%strOne%&%strTwo%/" *.txt

新建bat

也是毫无反应。。。

TOP

回复 2# cutebe


    感谢回复。。。实测毫无反应。。。你这个应该不是简单的bat吧

TOP

  1. ::第一行添加rar
  2. sed -i "1s/^/\"C:\Program Files\WinRAR\WinRAR.exe\" a -d-ibck \"cd1.rar\" /" *.txt
复制代码
  1. ::每行内容前后加字串
  2. sed -r -i "s/^.+$/%strOne%&%strTwo%/" *.txt
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

返回列表