Board logo

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

作者: Kevin_    时间: 2016-5-23 19:39     标题: 批处理如何在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
复制代码

作者: Kevin_    时间: 2016-5-23 19:54

版主大神们,快出来吧,感激不敬!
作者: WHY    时间: 2016-5-23 22:29

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

作者: gawk    时间: 2016-5-23 22:55

  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
复制代码

作者: gawk    时间: 2016-5-23 22:56

另外,你那种把重定向命令写在for循环内部的方法会造成代码执行效率低下,建议放到外面。
作者: Kevin_    时间: 2016-5-24 02:02

回复 3# WHY


    问题已经解决,感谢!
作者: Kevin_    时间: 2016-5-24 02:07

回复 5# gawk


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




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