Sql server 在多个目录中运行所有SQL文件
我结合了我在网上找到的几个解决方案,试图实现这一点 我正在尝试运行一个.cmd脚本(Script1.cmd),其中包含.sql文件的文件夹位置。该脚本运行另一个脚本(Script2.cmd),以使用sqlcmd执行该文件夹位置中的所有.sql文件。它基本上是有效的,但它会打开一个命令窗口,我必须为每个文件夹位置退出该窗口 Script1.cmdSql server 在多个目录中运行所有SQL文件,sql-server,batch-file,cmd,sql-server-2012,sqlcmd,Sql Server,Batch File,Cmd,Sql Server 2012,Sqlcmd,我结合了我在网上找到的几个解决方案,试图实现这一点 我正在尝试运行一个.cmd脚本(Script1.cmd),其中包含.sql文件的文件夹位置。该脚本运行另一个脚本(Script2.cmd),以使用sqlcmd执行该文件夹位置中的所有.sql文件。它基本上是有效的,但它会打开一个命令窗口,我必须为每个文件夹位置退出该窗口 Script1.cmd start Script2.cmd "C:\Location1" start Script2.cmd "C:\Location2" Script2
start Script2.cmd "C:\Location1"
start Script2.cmd "C:\Location2"
Script2.cmd
@Echo Off
FOR /f %%i IN ('DIR %1\*.Sql /B') do call :RunScript %1 %%i
GOTO :END
:RunScript
Echo Executing Script: %2
cd %1
SQLCMD -S Server123 -d Database456 -E -i %2
Echo Completed Script: %2
:END
for或for的官方命令行参考似乎过于简短。阅读: 语法:
START“title”[/D path][options]“command”[parameters]
始终包含标题
这可以是一个简单的字符串,如“我的脚本”
或
只有一对空引号。根据微软公司的说法
文档中,标题是可选的,但取决于其他
选择的选项如果省略,可能会出现问题
如果命令是内部cmd命令或批处理文件,则
处理器通过/K
开关运行到cmd.exe
这意味着
运行命令后,窗口将保留
下一步Script1.cmd
应工作并关闭已启动的命令窗口:
start "" cmd /C Script2.cmd "C:\Location1"
start "" cmd /C Script2.cmd "C:\Location2"
您真的希望两个
Script2.cmd
命令行同时运行吗?@aschipfl我可以从Scrip1中串行运行它们吗?是:要逐个运行,只需使用调用Script2.cmd*
。。。如果您希望每次运行都打开一个新窗口,您还可以使用start”“/WAIT cmd/C Script2.cmd*
,非常酷!非常感谢!