Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Множественные условия с получением %ERRORLEVEL% (http://forum.oszone.net/showthread.php?t=330607)

POSTREALITY 18-10-2017 22:10 2771680

Множественные условия с получением %ERRORLEVEL%
 
Друзья, здравствуйте!
Подскажите пожалуйста, уже всю голову сломал.
Есть батник автоматизации, основная его часть такова:

Код:

SetLocal EnableExtensions EnableDelayedExpansion
if not exist "Q:\error.err" (
%mailsender% другие переменные сендера -sub "FILE. STATUS: OK." -cs windows-1251 -M "Всё ОК."
) else (
findstr /I /C:"ISHEM OSHIBOCHNYE STROKI" "Q:\error.err" >nul
if "%ERRORLEVEL%"=="0" (
move "Q:\error.err" "%ErrDir%\%FD%_error-GEN.file" >nul
%mailsender% другие переменные сендера -sub "FILE. STATUS: ATTENTION. Detected Error." -cs windows-1251 -M "Есть ошибки."
) else (
del "Q:\error.err"
%mailsender% другие переменные сендера -sub "FILE. STATUS: OK." -cs windows-1251 -M "Всё ОК."
)
)

Файл error.err создаётся всегда, но если ошибок нет, то он пустой. Если ошибки есть, то ищем их по указанным значениям команды findstr.

Проблема в том, что как бы я не крутил, но на почту всегда приходит сообщение "Есть ошибки", даже в том случае если файл error.err создался пустым и ошибок соответственно нет.

Ткните меня носом пожалуйста, где я накосячил?

Большое всем спасибо за помощь!

alpap 18-10-2017 22:28 2771684

POSTREALITY,
вашу мамалыгу кроме вас никто и не разберет - это понятно, поэтому лучше просто напишите задачу и идею плюс цель, опишите детально, неплохо привести желаемый алгоритм.

Iska 18-10-2017 22:51 2771686

Цитата:

Цитата POSTREALITY
Проблема в том, что как бы я не крутил, но на почту всегда приходит сообщение "Есть ошибки", даже в том случае если файл error.err создался пустым и ошибок соответственно нет. »

Код:

        if !ERRORLEVEL! equ 0 (
А ещё лучше вообще уйти от переменной:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=q:\error.err

if exist "%sSourceFile%" (
        type "%sSourceFile%" | >nul findstr.exe /i /c:"ISHEM OSHIBOCHNYE STROKI" && (
                move "%sSourceFile%" "%ErrDir%\%FD%_error-GEN.file" >nul
                "%mailsender%" другие переменные сендера -sub "FILE. STATUS: ATTENTION. Detected Error." -cs windows-1251 -M "Есть ошибки."
        ) || (
                del "%sSourceFile%"
                "%mailsender%" другие переменные сендера -sub "FILE. STATUS: OK." -cs windows-1251 -M "Всё ОК."
        )
) else (
        "%mailsender%" другие переменные сендера -sub "FILE. STATUS: OK." -cs windows-1251 -M "Всё ОК."
)

endlocal
exit /b 0



Время: 14:53.

Время: 14:53.
© OSzone.net 2001-