找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 35018|回复: 6

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

[复制链接]
发表于 2016-5-23 19:39:39 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

 楼主| 发表于 2016-5-23 19:54:37 | 显示全部楼层
版主大神们,快出来吧,感激不敬!
发表于 2016-5-23 22:29:39 | 显示全部楼层
一种办法是把反括弧转义:
  1. SET "TheEnd="^^);"
复制代码
另一种办法是开启变量延迟后:
  1. ECHO !TheStart!%%i!TheEnd!
复制代码

评分

参与人数 1技术 +1 收起 理由
Kevin_ + 1 感谢!

查看全部评分

发表于 2016-5-23 22:55:05 | 显示全部楼层
  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技术 +1 收起 理由
Kevin_ + 1 感谢!

查看全部评分

发表于 2016-5-23 22:56:51 | 显示全部楼层
另外,你那种把重定向命令写在for循环内部的方法会造成代码执行效率低下,建议放到外面。

评分

参与人数 1技术 +1 收起 理由
Kevin_ + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2016-5-24 02:02:52 | 显示全部楼层
回复 3# WHY


    问题已经解决,感谢!
 楼主| 发表于 2016-5-24 02:07:16 | 显示全部楼层
回复 5# gawk


    问题已经解决,感谢!另多谢指教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 20:11 , Processed in 0.023081 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表