Пока каждый из первых 5 строк длиной < = 1021 байт, и нет никаких управляющих символов в конце любого из 5 линий:
@echo off
setlocal enableDelayedExpansion
<"test.txt" >"test.txt.new" (
for /l %%N in (1 1 5) do (
set "ln="
set /p "ln="
echo(!ln!
)
)
move /y "test.txt.new" "test.txt" >nul
Или вы могли бы использовать мой JREPL.BAT utility - гибридный JScript/пакетный скрипт, который запускается на любой машине Windows с XP. Это решение хорошо работает с любым файлом размера, если ни одна строка не превышает 2 гигабайт - без каких-либо ограничений.
JREPL.BAT действительно предназначен для поиска и замены регулярных выражений в текстовых файлах, но удобно использовать его для получения головы или хвоста файла.
jrepl "^" "" /jbegln "quit=(ln>=5)" /f test.txt /o -
Спасибо, работает как шарм. – kumar
Ох - Я не помню, чтобы когда-либо видел это раньше. Конечно, он терпит неудачу, если какая-либо строка источника '*****', а MORE повреждает символы табуляции. Но мне нравится этот хак! – dbenham
@dbenham - 10x. Это можно поместить в 'FOR/F' с помощью« skip = 4 », чтобы избежать« большего », но это сделает код более подробным (и мне больше нравится, что это почти удобный однострочный шрифт). – npocmaka