2013-07-07 3 views

ответ

2

Проверьте это:

@ECHO OFF &SETLOCAL 
copy /Y E:\LOG.DIR LOG.DIR 
set "old=INACTIVE" 
set "new=ACTIVE" 
FOR /f %%a IN ('^<log.DIR find /v /c ""') DO SET /a length=%%a 
SET /a length-=20 
SETLOCAL ENABLEDELAYEDEXPANSION 
<log.DIR (
FOR /l %%a IN (1,1,%length%) DO (
    SET "line=" 
    SET /p "line=" 
    ECHO(!line! 
))>newfile 
ENDLOCAL 
for /f "skip=%length% delims=" %%a in (LOG.DIR) do (
    set "str=%%a" 
    SETLOCAL ENABLEDELAYEDEXPANSION 
    set "str=!str:%old%=%new%!" 
    >>newfile ECHO(!str! 
    endlocal 
) 

Получить с find количество строк, минус 20, поместить результат в skip= в петле for /f.

+0

спасибо Endoro, но не работает – user2558845

+0

@ user2558845 да, вы правы. Я забыл какой-то код отладки и сделал редактирование, извините за это. – Endoro

+0

спасибо за помощь, но все строки до этого делятся :( – user2558845

Смежные вопросы