如何在文本文件中的特定行(最后一行)之前添加新行?

假设我有一个包含以下内容的diskpart脚本文件disk1.txt

 list vol exit 

batch file包含:

  @echo off pushd %~dp0 diskpart /s disk1.txt set /p vol=enter number of the volume echo sel vol %vol% > disk2.txt type disk1.txt >> disk2.txt diskpart /s disk2.txt del disk2.txt pause 

现在我想在最后一行之前在disk2.txt添加一行。

如何在最后一行之前添加新行?

又如何在特定的行之前,即在第4行或第3行,或其他指定行之前添加新行?

下面是一个简单的演示批处理代码,用于在文本文件中的特定位置插入一行:

 @echo off setlocal EnableDelayedExpansion rem A negative value inserts a line X lines before last line of source file. rem A positive value inserts a line before line X from source file. rem Value 0 assigned to InsertBeforeLine results in a copy of source file. set "InsertBeforeLine=-1" if %InsertBeforeLine% LSS 0 ( set "LineCount=1" for /F "usebackq eol= delims=" %%L in ("disk1.txt") do set /A "LineCount+=1" set /A "InsertBeforeLine+=LineCount" ) set "LineCount=1" for /F "usebackq eol= delims=" %%L in ("disk1.txt") do ( if %InsertBeforeLine% EQU !LineCount! echo Inserted line>>disk2.txt echo %%L>>disk2.txt set /A "LineCount+=1" ) endlocal 

注意:这个简单的批处理代码不适用于包含没有字符或只有空格字符的行的源文件。 换句话说, disk1.txt每行必须至少包含1个非空白字符。