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

[文本处理] [已解决]批处理如何在指定的固定行添加字符?

本帖最后由 q115643492 于 2011-7-31 14:12 编辑

比如1.txt
a
a
a
里面有3行字符,我现在想在第6行写入字符bb,中间差几行就空出来,注意是在固定的行,而不是每格六行,为1.txt的第六行
a
a
a


bb
能达到这种效果吗?应该有点困难吧!

  1. @echo off
  2. (for /l %%a in (1,1,3) do (
  3.     echo,
  4. ))>>a.txt
  5. >>a.txt echo,bb
复制代码

TOP

  1. @echo off
  2. for  /f %%i in (1.txt) do echo %%i
  3. for  /l  %%i in (1 1 3) do echo\
  4. echo bb
  5. pause
复制代码

TOP

  1. @echo off
  2. (  ( for  /f %%i in (1.txt) do echo %%i )
  3. for  /l  %%i in (1 1 3) do echo\
  4. echo bb  ) >>2.txt
复制代码
这个应该还可以

TOP

来个自动判断的
  1. @echo off&setlocal enabledelayedexpansion
  2. set test1=a.txt
  3. set test2=http://www.bathome.net/
  4. for /f %%i in ('type %test1%^|find /v /c "*."') do set n1=%%i
  5. echo %n1%
  6. :a
  7. cls
  8. set /p n2=请输入行数
  9. echo %n2%|findstr "^[0-9]*$">nul||goto :a
  10. if %n1% gtr %n2% (set n=%n1%) else (set n=%n2%)
  11. (for /l %%i in (1 1 %n%) do (set x=&set /p x=&echo.!x!&if %%i==%n2% echo.%test2%))<%test1%
  12. pause
复制代码

TOP

  1. gawk "{print}END{print \"\n\nbbb\"}" a.txt >b.txt
复制代码

TOP

本帖最后由 q115643492 于 2011-7-31 10:20 编辑

回复 4# 1130342432

发现个问题,你这几个代码只能满足,每格几行写入,而不是在固定的行,比如在第五行写入bb,运行两次你的代码,就成了:
a
a
a

bb



bb
我需要的是,只在第五行写入:
a
a
a

bb
不知道能否达到我的要求,麻烦了!

TOP

回复 7# q115643492


请把你的需求更新到顶楼
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那要是第六行原来就有内容呢?替换?还是挪到下一行?

TOP

回复 9# CrLf


    替换

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in (findstr /n .* 1.txt) do (
  3.    if %%a==6 (echo bb) else echo %%b
  4. )
  5. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.    if !h! leq 6 set /a n+=1
  4.    if !h! neq 6 (echo %%a) else echo bb
  5. )
  6. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (2 1 6) do (
  3.    set str=
  4.    set /p str=
  5.    echo !str!
  6. )<1.txt
  7. echo bb
  8. more +6 1.txt
复制代码

TOP

返回列表