2013-05-04 131 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的內容)。

更爲難得有不平衡% ...不知道會在所有的工作......