2013-05-04 130 views
0

我正在创建批处理文件以列出文件夹中所有SQL脚本的名称到文本文件的过程。我计划将此文本文件转换为批处理文件,以便我可以使用它来执行服务器中的脚本。所以我想有在创建初始文本文件如何使用批处理文件将批处理文件命令追加到字符串(文件名)

sqlcmd -S %MSSQLSERVER_NAME% -d %MSSQLSERVER_DBNAME% -i 

这是一个批处理文件的命令,我想每个文件名前附加每个文件名前附加以下字符串。 如:

sqlcmd -S %MSSQLSERVER_NAME% -d %MSSQLSERVER_DBNAME% -i 001_ALTER_PERSON.sql 

我正在使用的代码是

set MSSQLSERVER_NAME = "%MSSQLSERVER_NAME%" 
set %MSSQLSERVER_DBNAME = "%MSSQLSERVER_DBNAME%" 

set myvar=sqlcmd -S %MSSQLSERVER_NAME% -d %MSSQLSERVER_DBNAME% -i 

for /r . %%g in (*.sql) do echo %myvar% %%~nxg >> D:\test.txt 

pause 

出把我越来越

sqlcmd -S -d -i 015_ALTER_vBOARD_PAPERS.sql 

让我知道如何解决这个

+0

是什么'MSSQLSERVER_NAME'和'MSSQLSERVER_DBNAME'?变量还是字符串? – Endoro 2013-05-04 18:50:19

+0

这些是我打算在第二批文件中使用的变量。它用于服务器名称和数据库名称。当我运行批处理文件执行脚本时,这两个将被实际的服务器和数据库所取代。 – 2013-05-04 19:06:18

回答

0
set myvar=sqlcmd -S %%MSSQLSERVER_NAME%% -d %%MSSQLSERVER_DBNAME%% -i 

应该可以治愈你的问题米 - %逃脱%

请注意,空格在变量名显著,所以set var = something将设置var[space][space]something

set %varname%=...是罕见的 - 它设置VARIABLENAME(varname的内容)。

更为难得有不平衡% ...不知道会在所有的工作......