Вы можете использовать more +1
, чтобы пропустить первую строку файла. Затем вы можете передать его во временный (вы не можете редактировать текстовые файлы на месте):
for %x in (*.txt) do (more +1 "%x">tmp & move /y tmp "%x")
После этого вы можете использовать похожую технику, чтобы заново добавить первую строку:
for %x in (*.txt) do ((echo X,Y,Z& type "%x")>tmp & move /y tmp "%x")
Если вы используете их в пакетном файле, не забудьте удвоить знаки %
:
@echo off
for %%x in (*.txt) do (
more +1 "%%x" >tmp
move /y tmp "%%x"
)
rem Run your utility here
for %%x in (*.txt) do (
echo X,Y,Z>tmp
type "%%x" >>tmp
move /y tmp "%%x"
)
Хорошо, очевидно, more
не работает со слишком большими файлами, что меня удивляет. В качестве альтернативы, которая должна работать, если ваш файл не содержит пустых строк (хотя он выглядит как CSV из того, что я собрал):
for %%x in (*.txt) do (
for /f "skip=1 delims=" %%l in ("%%x") do (>>tmp echo.%%l)
move /y tmp "%%x"
)