Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


Contributor


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

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


NLOLegion, Определитесь, что нужно.
В постановке задачи были строки вида:
номер=что-то эдакое
В моём решении при добавлении в лог-файл новой строки перед строкой записывался фиктивный номер NN, то есть новая строка приобретала вид:
NN=что-то новенькое
Вы не обратили на это внимание.
NN в данном случае - это полная фикция, играющая роль номера, вместо него может быть что угодно, например, ку ку, или, как у Вас, часть Вашей строки до знака равно.
Затем скрипт берёт полученное, пропускает с начала необходимое кол-во строк, отбрасывает старые номера= и вписывает необходимые новые.
я не рассчитывал, что на входе будет строка с =, но после Вашего изменения вдруг получилось, то, что Вам нужно и о чём Вы не просили.
Вот вариант. Он сможет обработать входящие строки со знаками равно. В лог-файл они войдут полностью.
Код: Выделить весь код
@Echo Off

Set /A N=5
Set "LogFile=Z:\Box_Out\Logfile.txt"
Set "InFile=Z:\Box_Out\1.txt

Set /p ansver=<"%InFile%"
If "%ansver%"=="" Exit /B 222

>>"%LogFile%" Echo NN=%ansver%

Set /A NN=0
FOR /F "usebackq delims=" %%i IN (`more "%LogFile%"`) DO Call Set /A NN+=1
Set /A Nskip=%NN%-%N%
If %Nskip% LSS 0 Set Nskip=0

SetLocal EnableExtensions EnableDelayedExpansion

Set /A NN=0
>"%LogFile%.tmp" (FOR /F "usebackq tokens=1,* delims==" %%h IN (`more +%Nskip% "%LogFile%"`) DO Set /A NN+=1 &Echo !NN!=%%i)
move /Y "%LogFile%.tmp" "%LogFile%" >nul

GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:23, 23-11-2017 | #15