Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=log.txt
set sDestFile=log_обработанный.txt
call :GetTemporaryName
if defined sSourceFile (
if exist "%sSourceFile%" (
type "%sSourceFile%" | >"%TemporaryName%" findstr.exe /i /r /c:"[0-9]\.[0-9]" /c:"TCP port"
for /f "usebackq delims=" %%i in (
`type "%TemporaryName%" ^| find.exe /c /v ""`
) do set /a iCount = %%~i / 2
echo [!iCount!]
<"%TemporaryName%" >"%sDestFile%" (
for /l %%i in (1, 1, !iCount!) do (
set /p sVar1=
set /p sVar2=
echo !sVar1: =! !sVar2!
)
)
del /f /q "%TemporaryName%"
) else (
echo Can't find source file [%sSourceFile%].
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source file^>
exit /b 1
)
endlocal
exit /b 0
rem ==========================================================================
rem ==========================================================================
rem Функция GetTemporaryName()
rem ==========================================================================
:GetTemporaryName
setlocal enableextensions enabledelayedexpansion
:NextName
set sTempName=%temp%\temp%random%.tmp
if exist "%sTempName%" goto :NextName
set sProcName=%~0
endlocal & set %sProcName:~4%=%sTempName%
exit /b 0
rem ==========================================================================