TeamCity-将带空格的参数值传递到命令行

TeamCity-将带空格的参数值传递到命令行,teamcity,Teamcity,我正在将一些TeamCity参数传递到命令行构建步骤。当参数值包含空格时会出现问题,例如: %env.TEAMCITY_BUILDCONF_NAME% ---> My TC Project 有没有办法用其他字符替换空格,例如下划线 %env.TEAMCITY_BUILDCONF_NAME% ---> My_TC_Project 如果将参数用双引号括起来,通常可以继续使用空格: %program.files.dir%=>C:\program files(x86) 可执行文件:d

我正在将一些TeamCity参数传递到命令行构建步骤。当参数值包含空格时会出现问题,例如:

%env.TEAMCITY_BUILDCONF_NAME%  ---> My TC Project
有没有办法用其他字符替换空格,例如下划线

%env.TEAMCITY_BUILDCONF_NAME%  ---> My_TC_Project

如果将参数用双引号括起来,通常可以继续使用空格:

%program.files.dir%
=>
C:\program files(x86)

可执行文件:
dir


参数:
%program.files.dir%”

我不知道如何用下划线替换空格,但我遇到了空格问题。 在TeamCity构建步骤中,我尝试将sqlcmd作为带有参数的可执行文件运行

-S %sql_server% -U %sql_username% -P %sql_password% 
-i "custom_script.sql" -d "%custom_db%"
-v DealerName="%DealerName%"
DealName是“Great Dealer Ltd”,但它不适用于空格,即使是双引号

它通过将其设置为自定义脚本来解决此问题

sqlcmd -S %sql_server% -U %sql_username% -P %sql_password% 
-i "custom_script.sql"  -d "%custom_db%"
-v DealerName="%DealerName%"
而且(多亏了我老板的建议)它很有魅力


即使不是您问题的准确答案,也可能对类似问题有用。

下面给出的字符串对我有用

%env.TEAMCITY_BUILDCONF_NAME%  ---> "My\ TC\ Project"

是的,我试过了,但对我来说不行。该命令将空格作为新参数的开始进行计算。引用它应该有效。您正在运行的命令是什么?它的错误消息是什么?如果参数值本身可以包含双引号和单引号呢?命令行脚本通常可以访问环境变量。也许这样重写是有道理的。