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

[文本处理] 【已解决】批处理如何在txt某行前和后添加字符

本帖最后由 wzf1024 于 2016-2-19 20:39 编辑

请教大侠:
有很多txt文本,需要在某行前或后插入字符,不知如何实现?

比如一个txt:
------------------
1
2
3
4
------------------
我想在第三行前加aaa,行尾加bbb,就成了这样:
-----------------------
1
2
aaa3bbb
4
-----------------------

现有一个代码,但只能操作第一行:
----------------
@echo off
set "行首=$$$$"
set "行尾=####"
for %%a in (*.txt) do (
    set ".="
    (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%a"') do (
        if defined . (
            echo,%%b
        ) else (
            if not "%%b"=="" (
                set .=.
                echo %行首%%%b%行尾%
            )
        )
    ))>$
    move $ "%%a"
)
-------------
大侠能改成任意行都能操作吗,就是有变量接受输入的行数?

请举例说明

TOP

本帖最后由 尘丶 于 2015-11-28 19:25 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=3
  3. ((for /l %%a in (1.txt) do set /p n%%a)<1.txt
  4. for /f "delims=" %%a in (1.txt) do (
  5. set /a k+=1
  6. if not !k!==!n! (echo;%%a) else (echo;aaa%%abbb)
  7. )
  8. )>>$
  9. move $ 1.txt
  10. pause
复制代码
3是行数
心累~努力,为了美好的明天。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 设置在第几行插入
  4. set "Line=3"
  5. REM 设置行首
  6. set "Prefix=BAT"
  7. REM 设置行尾
  8. set "Suffix=VBS"
  9. for %%a in (*.txt) do (
  10.     (for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%%a"') do (
  11.         if %%i equ !Line! (
  12.             echo,%Prefix%%%j%Suffix%
  13.         ) else (
  14.             echo,%%j
  15.         )
  16.     ))>"%%a.tmp"
  17.     move "%%a.tmp" "%%a"
  18. )
复制代码
1

评分人数

TOP

返回列表