Batch file 如何使用批处理文件将批处理文件命令附加到字符串(文件名)中

Batch file 如何使用批处理文件将批处理文件命令附加到字符串(文件名)中,batch-file,Batch File,我正在创建一个批处理文件,将文件夹中所有SQL脚本的名称都列在一个文本文件中。我计划将此文本文件转换为批处理文件,以便使用它在服务器中执行脚本。因此,在创建初始文本文件时,我希望在每个文件名之前附加以下字符串 sqlcmd -S %MSSQLSERVER_NAME% -d %MSSQLSERVER_DBNAME% -i 这是一个批处理文件命令,我想在每个文件名之前添加它。 例如: 我使用的代码是 set MSSQLSERVER_NAME = "%MSSQLSERVER_NAME%" set %

我正在创建一个批处理文件,将文件夹中所有SQL脚本的名称都列在一个文本文件中。我计划将此文本文件转换为批处理文件,以便使用它在服务器中执行脚本。因此,在创建初始文本文件时,我希望在每个文件名之前附加以下字符串

sqlcmd -S %MSSQLSERVER_NAME% -d %MSSQLSERVER_DBNAME% -i
这是一个批处理文件命令,我想在每个文件名之前添加它。 例如:

我使用的代码是

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 
让我知道如何解决这个问题

set myvar=sqlcmd -S %%MSSQLSERVER_NAME%% -d %%MSSQLSERVER_DBNAME%% -i
应该解决您的问题-
%
逃逸
%

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

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


更罕见的是有不平衡的
%
。。。不确定这是否有效…

什么是
MSSQLSERVER\u NAME
MSSQLSERVER\u DBNAME
?变量还是字符串?这些是我计划在第二批文件中使用的变量。它用于服务器名称和数据库名称。当我运行批处理文件执行脚本时,这两个将被实际的服务器和数据库所取代。
set myvar=sqlcmd -S %%MSSQLSERVER_NAME%% -d %%MSSQLSERVER_DBNAME%% -i