200行を超えるテキストファイルがあり、4行目の前に新しい行を追加したいだけです。WindowsXPを使用しています。
入力前のテキストファイルの例:
header 1
header 2
header 3
details 1
details 2
出力後:
header 1
header 2
header 3
<----- This is new line ---->
details 1
details 2
私はあなたが使用していると信じています
echo Text >> Example.txt
関数?
その場合、答えは単に「。」を追加することです。 (ドット)エコーの直後に、他に何もありません。
例:
echo Blah
echo Blah 2
echo. #New line is added
echo Next Blah
次を使用できます。
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
免責事項:以下のソリューションでは、末尾のタブは保持されません。
テキストファイルの正確な行数がわかっている場合は、次の方法を試してください。
@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%
ループは、元のファイルから行を1つずつ読み取り、出力します。出力は一時ファイルにリダイレクトされます。特定の行に到達すると、その前に空の行が出力されます。
終了後、元のファイルは削除され、一時ファイルに元の名前が割り当てられます。
[〜#〜] update [〜#〜]
行数が事前に不明な場合は、次の方法を使用して取得できます。
FOR /F %%C IN ('FIND /C /V "" ^<%origfile%') DO SET totallines=%%C
(この行は、単にSET totallines=200
上記のスクリプトの行。)
このメソッドには小さな欠点が1つあります。ファイルが空の行で終わる場合、結果は実際の行数から1を引いたものになります。回避策が必要な場合(または単に安全にプレイしたい場合)、 this answer で説明されている方法を使用できます。