Board logo

标题: [文本处理] 批处理如何在txt文本每一行开头插入/添加指定字符串内容 [打印本页]

作者: x3801932    时间: 2009-4-21 20:24     标题: 批处理如何在txt文本每一行开头插入/添加指定字符串内容

本帖最后由 pcl_test 于 2017-5-5 22:08 编辑

请高手帮忙  在TXT 文件中 每行都有一个网络地址 我希望每行都增加 start /min iexplore
请问怎么实现
作者: xushaolong2009    时间: 2009-4-21 21:14

  1.   思路:for /f读取文本将每一行以序列的形式赋值给变量
  2.        然后再用一个 for /L依次去读取变量并赋值就可以了
  3.   
复制代码
下面是代码
  1.   @echo off&setlocal enabledelayedexpansion
  2. set "str=start /min iexplore"
  3. for /f "delims=" %%i in (b.txt) do (set /a xu+=1
  4.     set shao!xu!=%%i
  5. )
  6. cd.>b.txt
  7. for /l %%i in (1 1 !xu!) do echo !shao%%i!!str!>>b.txt
  8. pause
  9.   
复制代码
解释
  1. @echo off&setlocal enabledelayedexpansion
  2. 关闭回显 并  开启延迟变量
  3. set "str=start /min iexplore"
  4. 赋值str的值为start /min iexplore
  5. for /f "delims=" %%i in (b.txt)
  6. for命令读取b.txt文本
  7. set /a xu+=1
  8. 读取第一行时xu的值为1,因为之前变量xu没有赋值,值为空,因此xu=“空”+1=1
  9. set shao!xu!=%%i
  10. 这个命令将该行内容,赋值给变量shao!xu!
  11. 而此时,wind=1
  12. 所以 也就是 set shao1=第一行的内容
  13. .
  14. .
  15. .
  16. 直到最后一行,for循环结束
  17. cd.>b.txt
  18. 把b.txt质空(也就是楼主想要的txt文件)
  19. for /l %%i in (1 1 !xu!) do echo !shao%%i!!str!>>b.txt
  20. 用for  /l 循环依次读取上一个for语句的每一行,并在每一行后面加!str!即楼主要加的字符,并输出到b.txt中
复制代码

作者: 随风    时间: 2009-4-21 22:30

网址中可能含有特殊符号,设为变量可能会出错,为什么不直接添加呢。
:
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do echo start /min iexplore %%a)>b.txt
  3. start b.txt
复制代码

作者: xushaolong2009    时间: 2009-4-21 22:38     标题: 回复 3楼 的帖子

呵呵,我是刚刚看到相关的教程,一时手痒就写了下,没考虑得当


  还是大大牛,又学了一招


这半个月来,几乎一天中大半个时间除了上专业课都泡在论坛上,看教程,做题,感觉有那么点意思,嘿嘿




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