Измените for
строку на эту:
For /F "skip=4 tokens=2" %%A in (E:\WINDOWS\system32\LogFiles\MSFTPSVC6141885\%filename%) do (
Set ip=%%A
goto :DONE
)
:DONE
@echo IP = %ip%
:: Continue script
skip=4
проигнорирует первые четыре строки файла журнала и начнет анализ 5-й.
Вам нужно goto
, чтобы прекратить синтаксический анализ остальных строк в файле, иначе вы прокрутите весь файл, и ip
будет равен второму токену последней строки, который может быть или не быть IP адрес.
Разделителем по умолчанию является пробел, поэтому вам не нужно менять его с помощью аргумента delims
. Вам нужен только второй токен, который является IP-адресом.
Вам не нужно заключать имя файла в одинарные кавычки, поскольку вы анализируете содержимое файла, а не строку имени файла. Если в имени файла есть пробелы, вы должны использовать эту строку for
вместо:
For /F "usebackq skip=4 tokens=2" %%A in ("E:\WINDOWS\system32\LogFiles\MSFTPSVC6141885\%filename%") do (