%errorlevel%,!errorlevel!有什么区别?和错误级别

时间:2018-09-07 11:46:27

标签: batch-file sqlcmd

我正在使用Window 10并尝试制作一个批处理脚本文件。

我希望该脚本将自动将文件夹“我的文件夹”中的所有存储过程部署到我的数据库。此外,如果一个存储过程失败,则会引发错误

这是我写的(即使存储过程失败,它也总是可以成功运行)

for /R %dp0\my_folder %%f in (*.sql) do (
   SQLCMD -b -E -d my_database %%f
   IF %errorlevel% NEQ 0 (
       ECHO %%f"[ERROR]"
       GOTO FAILED
   )
)

:FAILED
EXIT /b

然后我尝试使用(它起作用,如果一个存储过程失败,批处理脚本将返回错误)

for /R %dp0\my_folder %%f in (*.sql) do (
   SQLCMD -b -E -d my_database %%f
   IF !errorlevel! NEQ 0 (
       ECHO %%f"[ERROR]"
       GOTO FAILED
   )
)

:FAILED
EXIT /b

因此,此处两个脚本之间的唯一区别是%errorlevel%和!errorlevel!

0 个答案:

没有答案