如何将变量添加到批处理文件?

时间:2010-10-02 09:41:47

标签: windows batch-file

大家好我是批处理文件和苦苦挣扎的新手。我正在使用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

任何建议?

1 个答案:

答案 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