Батник:
@echo off
SetLocal EnableDelayedExpansion
set "filename=1.txt"
set "name=" & set "surname=" & set "pass=" & set "api="
for /f "tokens=2,3 delims=(;', " %%a in ('findstr "define" %filename%') do (
if /i "%%a" equ "name" (
set "name=%%b"
) else if /i "%%a" equ "surname" (
set "surname=%%b"
) else if /i "%%a" equ "password" (
set "pass=%%b"
) else if /i "%%a" equ "api" (
set "api=%%b"
)
if defined name if defined surname if defined pass if defined api (
echo.!name!;!surname!;!password!;!api!
set "name=" & set "surname=" & set "pass=" & set "api="
)
)
Предполагается что записи name, surname, password, api будут сгруппированы именно так как в примере, т.е. не будут перемешаны записи разных пользователей.
В таком варианте возможны проблемы, если в файле будут данные, содержащие спец.символы cmd:
!%&<>| ...