我正在使用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!