2013-02-05 60 views
8

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

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

有没有办法与其他一些字符来代替空格,例如下划线?

%env.TEAMCITY_BUILDCONF_NAME% ---> My_TC_Project 
+0

命令行脚本通常可以访问环境变量。重写它可能是有道理的。 –

回答

1

您通常可以继续使用空格,如果你包裹在双引号中的参数:

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

可执行文件:dir

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

+0

是的,我已经尝试过,但它不适用于我的情况。该命令将空白值作为新参数的开始。 – finspin

+0

引用它*应该*工作。你正在运行的命令是什么?它的错误信息是什么? – zck

+0

如果参数值本身可以包含双引号和单引号,该怎么办? –

0

我不知道如何用下划线替换空格,但是我遇到了与w有关的问题hitespaces。 在TeamCity的构建步骤,我试图用参数

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

其中DealerName是“大经销商有限公司”运行SQLCMD为可执行文件,但它并没有用空格工作,甚至用双引号。

它通过像

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

和(感谢我的老板建议)它的工作就像魅力其设置为自定义脚本固定的问题。

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