如何使用批处理在文本文件中的某一行之后添加多行
How do i add multiple lines after a certain line in a text file using batch
我需要编辑一个文本文件以在特定行之后插入多行,仅具有 windows 10
附带的功能
示例:在第 4
行之后插入行 foo
和 bar
添加前的文本文件示例:
line 1
line 2
line 3
line 4
line 5
line 6
添加后的文本文件示例:
line 1
line 2
line 3
line 4
foo
bar
line 5
line 6
读取文件并将其写回,在特定行号处插入新行。
@echo off
setlocal DisableDelayedExpansion
set randomline=4
set "lineno=0"
(
FOR /F "delims=" %%L in ('findstr /n "^" sample.txt') do (
set /a lineno+=1
set "line=%%L"
setlocal EnableDelayedExpansion
if "!lineno!"=="%randomline%" call :insertblock
set "line=!line:*:=!"
(echo(!line!)
endlocal
)
) > output.txt
exit /b
:insertblock
echo foo
echo bar
exit /b
我需要编辑一个文本文件以在特定行之后插入多行,仅具有 windows 10
附带的功能示例:在第 4
行之后插入行foo
和 bar
添加前的文本文件示例:
line 1
line 2
line 3
line 4
line 5
line 6
添加后的文本文件示例:
line 1
line 2
line 3
line 4
foo
bar
line 5
line 6
读取文件并将其写回,在特定行号处插入新行。
@echo off
setlocal DisableDelayedExpansion
set randomline=4
set "lineno=0"
(
FOR /F "delims=" %%L in ('findstr /n "^" sample.txt') do (
set /a lineno+=1
set "line=%%L"
setlocal EnableDelayedExpansion
if "!lineno!"=="%randomline%" call :insertblock
set "line=!line:*:=!"
(echo(!line!)
endlocal
)
) > output.txt
exit /b
:insertblock
echo foo
echo bar
exit /b