大家好我是批处理文件和苦苦挣扎的新手。我正在使用sql server 2008
我创建了一个执行其他批处理文件+ sql脚本的批处理文件。 我想用变量怎么办呢? 我想将路径设置为变量。 我可以有多个路径,具体取决于脚本的位置。
:On Error exit
CALL C:\mypath\Scripts\ExecSqlScripts.bat
CALL C:\mypath\Scripts\ExecSqlScriptsTwo.bat
SQLCMD -S (Local) -i C:\mypath\Scripts\InsertUsernameTwo.sql
SQLCMD -S (Local) -i C:\mypath\Scripts\InsertUsernameThree.sql
SQLCMD -S (Local) -i C:\mypath\Scripts\InsertUsernameFour.sql
任何建议?
答案 0 :(得分:2)
您需要set
命令 - http://www.computerhope.com/sethlp.htm
:On Error exit
set thePath=C:\mypath\Scripts
CALL %thePath%\ExecSqlScripts.bat
CALL %thePath%\ExecSqlScriptsTwo.bat
SQLCMD -S (Local) -i %thePath%\InsertUsernameTwo.sql
SQLCMD -S (Local) -i %thePath%\InsertUsernameThree.sql
SQLCMD -S (Local) -i %thePath%\InsertUsernameFour.sql
在
也可以从批处理文件外部调用set thePath=C:\mypath\Scripts
。
避免重复代码使用for命令的另一种解决方案。
for %%f in (ExecSqlScripts ExecSqlScriptsTwo) do call %%f.bat
这相当于 CALL%thePath%\ ExecSqlScripts.bat CALL%thePath%\ ExecSqlScriptsTwo.bat
for %%f in (InsertUsernameTwo InsertUsernameThree InsertUsernameFour) do call SQLCMD -S (Local) -i %thePath%\%%f.sql
这相当于
SQLCMD -S (Local) -i %thePath%\InsertUsernameTwo.sql
SQLCMD -S (Local) -i %thePath%\InsertUsernameThree.sql
SQLCMD -S (Local) -i %thePath%\InsertUsernameFour.sql