Board logo

标题: [文本处理] 批处理如何在文本包括空行的每行末尾添加指定字符串? [打印本页]

作者: hylijianjun    时间: 2011-4-22 17:17     标题: 批处理如何在文本包括空行的每行末尾添加指定字符串?

本帖最后由 pcl_test 于 2017-3-20 08:39 编辑

下面是找的网上的,可以在txt每行后加入[br/],但是如果文本中有空行的话,替换后空行就会消失。
我的想法如下:
原文本:
第一行
第二行

第四行

转变效果如下:
第一行[br/]
第二行[br/]
[br/]
第四行[br/]

新人求助,麻烦各位了。

这是固定添加[br/]的
  1. @echo off
  2. mode con lines=12 cols=60
  3. color a
  4. :begin
  5. set lj=
  6. cls
  7. echo 输入目标文件位置 ,支持拖拽.
  8. echo  例如:
  9. echo   c:\abc\story.txt
  10. set /p lj=请输入:
  11. if not defined lj goto begin
  12. set lj=%lj:"=%
  13. if not exist "%lj%" goto begin
  14. for /f "tokens=* usebackq" %%i in ("%lj%") do >>"%lj:.txt=%BR.txt" echo %%i^[br^/]
  15. pause
复制代码
这是自定义添加字符的
  1. @echo off
  2. mode con lines=12 cols=60
  3. color a
  4. :begin
  5. set lj=
  6. cls
  7. echo 输入目标文件位置 ,Xp下支持拖拽.
  8. echo  例如:
  9. echo   c:\abc\story.txt
  10. set /p lj=请输入:
  11. if not defined lj goto begin
  12. set lj=%lj:"=%
  13. if not exist "%lj%" goto begin
  14. echo.
  15. set tj=
  16. set /p tj= 请输入添加的内容:
  17. for /f "tokens=* usebackq" %%i in ("%lj%") do >>"%lj:.txt=%BR.txt" echo %%i%tj%
  18. pause
复制代码

作者: CrLf    时间: 2011-4-22 17:29

  1. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* 1.txt') do echo;%%b[br/])>2.txt
复制代码

作者: hylijianjun    时间: 2011-4-22 21:01

(for /f "tokens=1* delims=:" %%a in ('findstr /n .* 1.txt') do echo;%%b)>2.txt
zm900612 发表于 2011-4-22 17:29

非常感谢,测试成功
作者: Commander    时间: 2011-4-22 23:16

  1. sed -i "s/$/\[br\/\]/g" a.txt
复制代码

作者: applba    时间: 2011-4-23 12:29

哎,感觉还是vbs的函数好用……




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2