Board logo

标题: [文本处理] [已解决]批处理如何在已存在的文本中的第N行添加指定的内容? [打印本页]

作者: laoxiu    时间: 2009-7-21 23:34     标题: [已解决]批处理如何在已存在的文本中的第N行添加指定的内容?

比如说文本内容是:
今天是个好天气!
123456
abcdef
我要在第二行添加 qwert 变成
今天是个好天气!
qwert
123456
abcdef

[ 本帖最后由 laoxiu 于 2009-8-22 21:06 编辑 ]
作者: tireless    时间: 2009-7-22 00:25

  1. @echo off
  2. set "File=a.txt"
  3. set "Line=2"
  4. set "Str=qwert"
  5. set n=0
  6. (for /f "delims=" %%a in ('findstr /n .* "%File%"') do (
  7.   set /a n+=1
  8.   set var=%%a
  9.   setlocal enabledelayedexpansion
  10.   if !n!==%Line% echo;!Str!
  11.   echo;!var:*:=!
  12.   endlocal
  13. )) > "%temp%\~.txt"
  14. move "%temp%\~.txt" "%File%"
复制代码

作者: lxzzr    时间: 2009-7-22 12:31

注意空行


  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.          set /a temp_+=1
  5.          if !temp_! == 2 echo qwert>>b.txt
  6.          echo %%a>>b.txt
  7. )
  8. pause
复制代码

作者: Lumiere    时间: 2009-7-23 00:17

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.      echo %%a>>b.txt
  4.      set n+=1
  5.      if !n! equ 1 echo qwert>>b.txt
  6. )
  7. pause
复制代码





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