【发布时间】:2013-08-20 12:34:31
【问题描述】:
在下面的批处理脚本中,我希望所有脚本都保存在 c:\temp 中,它们将一一执行并在日志文件中重新排列所有成功/错误记录,如果发生任何错误,则应该停止 这里有什么语法错误,还有一个我把这个批处理脚本和所有的 sql 脚本只保存在一个文件夹中
@Echo Off
FOR /f %%i IN ('DIR C:\temp\*.Sql /B') do call :RunScript %%i
GOTO :END
:RunScript
Echo Executing %1
@set SName=someservername
@set DbName=somedbname
@set path=C:\temp
echo sqlcmd -S %SName% -d %DbName% -i %1 -o "%path%\log.txt"
if not %errorlevel%==0 exit
Echo Completed %1
:END
【问题讨论】:
-
为什么
echo前面有sqlcmd?删除它! -
好的,我还是有同样的问题
-
刚刚记住:当你
@set path=C:\temp时,你会导致shell 找不到sqlcmd.exe,除非它存在于当前目录或c:\temp!
标签: for-loop batch-file sqlcmd