Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


"Немного экзотики"...

Использование команды "fc":

Код: Выделить весь код
@echo off
set text_file=100001.txt
for /f %%i in ('find /c /v ""^<"%text_file%"') do set /a n=%%i-1
>nul copy nul 0.tmp
>1.tmp fc /lb%n% 0.tmp "%text_file%"
>2.tmp<1.tmp more +4
>3.tmp<2.tmp find /v "*****"
del 0.tmp 1.tmp 2.tmp
>nul move "%text_file%" "%text_file%.bak"
>nul move 3.tmp %text_file%
Жаль только, что слишком длинные строки команда "fc" располагает в несколько строк.

В случае использования только двух временных файлов в конце переписанного файла будут две лишние пустые строки:

Код: Выделить весь код
@echo off
set text_file=100001.txt
for /f %%i in ('find /c /v ""^<"%text_file%"') do set /a n=%%i-1
>nul copy nul 0.tmp
fc /lb%n% 0.tmp "%text_file%"| more +4|>1.tmp find /v "*****"
del 0.tmp
>nul move "%text_file%" "%text_file%.bak"
>nul move 1.tmp %text_file%

Отправлено: 20:19, 21-02-2014 | #12