cluster
Миранды у меня нет, толком проверить не могу, но попробуй так
Код:
@ECHO OFF
IF EXIST +RESULT.LOG DEL +RESULT.LOG
FOR %%A IN (*.TXT) DO (
CALL :FIND_USERNAME %%A
CALL :FIND_UIN %%A
IF DEFINED USER IF DEFINED UIN (
REM Если %USER% и %UIN% заданы, вызываем
REM соответствующую метку батника и записываем их
CALL :WRITE_USERNAME_AND_UIN
) ELSE (
REM Иначе сбрасываем переменные %USER% и %UIN%
SET USER=
SET UIN=
)
)
GOTO :EOF
:FIND_USERNAME
FOR /F "TOKENS=2 DELIMS=:" %%I IN ('FIND "User" "%*"') DO (
REM Если не задана переменная USER, то присваиваем USER
REM первому же найденному и выходим из цикла FOR,
REM дальше этот файл не читаем
IF NOT DEFINED USER (SET USER=%%I && GOTO :EOF)
)
GOTO :EOF
:FIND_UIN
FOR /F "TOKENS=2 DELIMS=:" %%I IN ('FIND "UIN" "%*"') DO (
REM Если не задана переменная UIN, то присваиваем UIN
REM первому же найденному и выходим из цикла FOR,
REM дальше этот файл не читаем
IF NOT DEFINED UIN (SET UIN=%%I && GOTO :EOF)
)
GOTO :EOF
:WRITE_USERNAME_AND_UIN
REM Записываем в лог
ECHO %USER% - %UIN% >> +RESULT.LOG
REM И сбрасываем переменные %USER% и %UIN%
SET USER=
SET UIN=
GOTO :EOF
Миранды у меня нет, толком проверить не могу, но попробуй так
Код:
@ECHO OFF
IF EXIST +RESULT.LOG DEL +RESULT.LOG
FOR %%A IN (*.TXT) DO (
CALL :FIND_USERNAME %%A
CALL :FIND_UIN %%A
IF DEFINED USER IF DEFINED UIN (
REM Если %USER% и %UIN% заданы, вызываем
REM соответствующую метку батника и записываем их
CALL :WRITE_USERNAME_AND_UIN
) ELSE (
REM Иначе сбрасываем переменные %USER% и %UIN%
SET USER=
SET UIN=
)
)
GOTO :EOF
:FIND_USERNAME
FOR /F "TOKENS=2 DELIMS=:" %%I IN ('FIND "User" "%*"') DO (
REM Если не задана переменная USER, то присваиваем USER
REM первому же найденному и выходим из цикла FOR,
REM дальше этот файл не читаем
IF NOT DEFINED USER (SET USER=%%I && GOTO :EOF)
)
GOTO :EOF
:FIND_UIN
FOR /F "TOKENS=2 DELIMS=:" %%I IN ('FIND "UIN" "%*"') DO (
REM Если не задана переменная UIN, то присваиваем UIN
REM первому же найденному и выходим из цикла FOR,
REM дальше этот файл не читаем
IF NOT DEFINED UIN (SET UIN=%%I && GOTO :EOF)
)
GOTO :EOF
:WRITE_USERNAME_AND_UIN
REM Записываем в лог
ECHO %USER% - %UIN% >> +RESULT.LOG
REM И сбрасываем переменные %USER% и %UIN%
SET USER=
SET UIN=
GOTO :EOF