У меня есть сценарий синхронизации powershell, который синхронизирует 1 куб на двух разных серверах.
У меня установлен флаг для каждого из двух серверов, где могут быть три сценария:
1: ОБА серверы ИСТИНА
2: ОБА серверы ЛОЖЬ
3: 1 сервер ИСТИНА, другой сервер ЛОЖЬ
код выхода сценария один * 0
(успешная синхронизация)
код выхода сценария 2 1
(ошибка синхронизации)
, но для сценария 3, если для одного сервера задано значение false, выход будет равен 1 в случае сбоя, но сценарий СЛЕДУЕТ продолжить работу, поскольку другой сервер доступен для синхронизации с кодом выхода0 для успеха.
проблема с выходом состоит в том, что он выходит из оставшейся части скрипта при его вызове.Я хотел бы, чтобы альтернатива этому механизму выхода охватила сценарий 3. Я обнаружил, что наиболее близким является следующее:
[ $PS1 ] && return || exit;
или
[ -v PS1 ] && return || exit
, но я не уверен, как передатькод там (0 или 1), не говоря уже о том, что я получил ошибки, что команда все равно не распознается.
Отсутствует имя типа после '['.
Маркер '||'не является допустимым разделителем операторов в этой версии.
Маркер '&&' не является допустимым разделителем операторов в этой версии.
Мне нужны коды выхода, потому что онипередается обратно в пакетный файл следующим образом:
if %errorlevel% NEQ 0 GOTO :error
GOTO :end
:error
REM echo Exit Code: %ERRORLEVEL%
REM echo Failed!
EXIT /B %ErrorLevel%
:end
REM echo Exit Code: %ERRORLEVEL%
REM echo Success!
, от которого зависит сторонняя автоматизация (autosys) для отображения статуса.