Пакетная программа: как перенаправить команды и сделать условные операторы - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать пакетный файл для загрузки файлов на S3 для запуска в качестве запланированной задачи. Поэтому я хочу некоторые условные операторы для ведения журнала и уведомления об ошибках.

Моя проблема заключается в том, как я могу запустить команду command_A, чтобы ее stderr и stdout добавлялись в файл, а затем, если команда command_A была выполнена успешно, запустите command_B, регистрируя время и сообщение об успешном завершении этого же файла, но если команда command_A завершилась неудачно, запустите command_ C, уведомив, что запланированное задание не удалось записать время и сообщение об ошибке в один и тот же файл.

Я попытался что-то вроде этого:

aws sync "directory" MyS3Bucket >> "folder_directory/log.log" 2>&1
&& echo Successfully synced on %date%-%time%: >> "folder_directory/log.log"
|| echo Synchronization failed on %date%-%time%: >> "folder_directory/log.log"

Это успешно выполнит первую строку, но затем вернет «&& было неожиданным в это время». в CMD и не регистрируется (потому что я только добавляю стандартный вывод, который я предполагаю).

, и я попытался

if aws sync "directory" MyS3Bucket >> "folder_directory/log.log" 2>&1 ; then
(
    echo Successfully synced on %date%-%time%: >> "folder_directory/log.log"
) else (
    echo Synchronization failed on %date%-%time%: >> "folder_directory/log.log"
)
fi

И это просто не работает вообще. Как я могу добиться добавления выходных данных и условных выражений для успеха и неудачи?

...