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

[文本处理] 批处理如何在TXT文本每一行的行首和行尾插入指定字符串?

本帖最后由 pcl_test 于 2016-5-24 20:20 编辑

有文本a_list.txt,内容格式如下:
  1. Asphalt
  2. ASUSBrowser
  3. AsusDrawRes
  4. ......
复制代码
现要求在每一行行首插入
  1. delete_recursive("/system/app/
复制代码
行尾插入
  1. ");
复制代码
生成新文件New_list.txt,使之格式化为如下形式:
  1. delete_recursive("/system/app/Asphalt");
  2. delete_recursive("/system/app/ASUSBrowser");
  3. delete_recursive("/system/app/AsusDrawRes");
  4. ......
复制代码
我自己的代码如下,行首没问题,行尾不行。该如何改正?
  1. @ECHO OFF
  2. SET "TheStart=delete_recursive("/system/app/"
  3. SET "TheEnd=");"
  4. FOR /f "tokens=*" %%i IN (a_list.txt) DO (
  5. >>New_list.txt ECHO %TheStart%%%i%TheEnd%
  6. )
  7. PAUSE
复制代码
1

评分人数

回复 5# gawk


    问题已经解决,感谢!另多谢指教!

TOP

回复 3# WHY


    问题已经解决,感谢!

TOP

另外,你那种把重定向命令写在for循环内部的方法会造成代码执行效率低下,建议放到外面。
1

评分人数

    • Kevin_: 感谢给帖子标题标注[已解决]字样技术 + 1
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

  1. @echo off
  2. set TheStart=delete_recursive("/system/app/
  3. set TheEnd="^);
  4. (for /f "delims=" %%i in ('type 1.txt') do (
  5.     echo %TheStart%%%i%TheEnd%
  6. ))>2.txt
复制代码
1

评分人数

Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

一种办法是把反括弧转义:
  1. SET "TheEnd="^^);"
复制代码
另一种办法是开启变量延迟后:
  1. ECHO !TheStart!%%i!TheEnd!
复制代码
1

评分人数

TOP

版主大神们,快出来吧,感激不敬!

TOP

返回列表