我有一个文本文件,其中有超过200行,我只想在第4行之前添加一个新行。我正在使用Windows XP。
输入前的示例文本文件:
header 1
header 2
header 3
details 1
details 2
输出后:
header 1
header 2
header 3
<----- This is new line ---->
details 1
details 2
答案 0 :(得分:24)
我相信你正在使用
echo Text >> Example.txt
功能
如果是这样,答案就是添加一个“。” (点)直接在回声之后没有别的。
示例:
echo Blah
echo Blah 2
echo. #New line is added
echo Next Blah
答案 1 :(得分:3)
您可以使用:
type text1.txt >> combine.txt
echo >> combine.txt
type text2.txt >> combine.txt
或类似的东西:
echo blah >> combine.txt
echo blah2 >> combine.txt
echo >> combine.txt
echo other >> combine.txt
答案 2 :(得分:1)
免责声明:以下解决方案不会保留尾随标签。
如果您知道文本文件中的确切行数,请尝试以下方法:
@ECHO OFF
SET origfile=original file
SET tempfile=temporary file
SET insertbefore=4
SET totallines=200
<%origfile% (FOR /L %%i IN (1,1,%totallines%) DO (
SETLOCAL EnableDelayedExpansion
SET /P L=
IF %%i==%insertbefore% ECHO(
ECHO(!L!
ENDLOCAL
)
) >%tempfile%
COPY /Y %tempfile% %origfile% >NUL
DEL %tempfile%
循环逐个读取原始文件中的行并输出它们。输出重定向到临时文件。当达到某一行时,在它之前输出一个空行。
完成后,将删除原始文件,并为临时文件分配原始名称。
<强>更新强>
如果预先知道行数,您可以使用以下方法获取它:
FOR /F %%C IN ('FIND /C /V "" ^<%origfile%') DO SET totallines=%%C
(此行只是替换上述脚本中的SET totallines=200
行。)
该方法有一个小缺陷:如果文件以空行结尾,结果将是实际行数减1。如果您需要一种解决方法(或者只是想安全玩耍),您可以使用this answer中描述的方法。
答案 3 :(得分:-2)
假设您要插入特定的文本行(不是空行):
@echo off
FOR /F %%C IN ('FIND /C /V "" ^<%origfile%') DO SET totallines=%%C
set /a totallines+=1
@echo off
<%origfile% (FOR /L %%i IN (1,1,%totallines%) DO (
SETLOCAL EnableDelayedExpansion
SET /p L=
IF %%i==%insertat% ECHO(!TL!
ECHO(!L!
ENDLOCAL
)
) >%tempfile%
COPY /Y %tempfile% %origfile% >NUL
DEL %tempfile%