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

问题描述 投票:9回答:3

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

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

有没有办法用其他字符替换空格,例如下划线?

%env.TEAMCITY_BUILDCONF_NAME%  ---> My_TC_Project
teamcity
3个回答
1
投票

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

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

可执行文件:dir

参数:"%program.files.dir%"


1
投票

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

-S %sql_server% -U %sql_username% -P %sql_password% 
-i "custom_script.sql" -d "%custom_db%"
-v DealerName="%DealerName%"

其中DealerName是“Great Dealer Ltd”,但它不适用于空格,即使是双引号也是如此。

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

sqlcmd -S %sql_server% -U %sql_username% -P %sql_password% 
-i "custom_script.sql"  -d "%custom_db%"
-v DealerName="%DealerName%"

并且(感谢老板的建议)它有点像魅力。

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


0
投票

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

%env.TEAMCITY_BUILDCONF_NAME%  ---> "My\ TC\ Project"
© www.soinside.com 2019 - 2024. All rights reserved.