2016-12-29 186 views
0

如果有错误,同时运行的程序,然后回声“错误”其他“成功”如何IF语句中使用的SQLCMD

sqlcmd -S DANAA-LAPTOP -d NewsWebsite -q "SP_DictionaryMain 'NewsWebsite','NEW'" 
     -o C:\logFile\ReportExE-%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt 
+1

用这些语句编写脚本并将其传递给'sqlcmd',而不是试图在查询参数中填充所有内容 –

回答

0

试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中删除错误消息