Try CMD &&
и ||
операторы, где &&
означает предыдущую команду успешным и ||
означает, что предыдущая команда не удалась.
как в
mycommand && echo success || echo error
вы также можете написать составные команды внутри скобок
mycommand && (set "somevar=ok" & echo success) || (set "somevar=ko" & echo error)
или, если вы работаете пакетный скрипт
mycommand && (
set "somevar=ok"
echo success
) || (
set "somevar=ko"
echo error
)
Кроме того, вам нужно использовать переключатель -b
, чтобы заставить sqlcmd
возвращает ERRORLEVEL
, которые могут быть записаны в пакетной или командной строке. Этот переключатель также заставляет sqlcmd
закрываться при возникновении ошибки.
так, в вашем случае
sqlcmd -b -S DANAA-LAPTOP -d NewsWebsite -q "SP_DictionaryMain 'NewsWebsite','NEW'" -o C:\logFile\ReportExE-%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt 2>NUL && echo success || echo error
Как вы хотите echo
что-то, вывод ошибок подавляется с 2>NUL
. Удалите его, чтобы увидеть сообщения об ошибках от sqlcmd
Напишите сценарий с инструкциями и передайте его в 'sqlcmd' вместо того, чтобы пытаться заполнить все в параметре запроса –