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 

让我知道如何解决这个问题

4

1 回答 1

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

应该可以解决您的问题 -%逃脱%

请注意,空格在变量名中很重要,因此set var = something将设置var[space][space]something

set %varname%=...很少见 - 它设置变量名(varname 的内容)。

更罕见的是不平衡%......不确定这是否会起作用......

于 2013-05-04T18:57:15.363 回答