TeamCity 用户定义的环境变量
TeamCity user defined environment variables
我正在尝试从我在运行时通过 PowerShell 设置的 TeamCity 参数获取用户定义的变量。
当我在 PowerShell 运行程序脚本 %variablename%
中执行 window 时,我得到了变量的值。但是,当我以编程方式构建一个带有 % 符号的字符串时,它会打印文字。我也尝试根据他们的文档使用 $env:variablename
,但没有帮助。
下面是我正在编写的用于获取环境变量值的函数:
Function get-tc-env-var {
Param (
[Parameter(Mandatory=$true)]
[string]$env_var
)
Process
{
$var = Env:$env_var # tried both $Env and Env both dont work
if (!$var)
{
Write-Host "Can't get environment variable:" $env_var
}
else { return $Var.trim()}
}
}
如果你想通过另一个变量指定其名称来获取环境变量,你需要使用 Get-Item
:
Function get-tc-env-var {
Param (
[Parameter(Mandatory=$true)]
[string]$env_var
)
Process
{
$var = (Get-Item env:$env_var).value
if (!$var)
{
Write-Host "Can't get environment variable:" $env_var
}
else
{
return $Var.trim()
}
}
}
我正在尝试从我在运行时通过 PowerShell 设置的 TeamCity 参数获取用户定义的变量。
当我在 PowerShell 运行程序脚本 %variablename%
中执行 window 时,我得到了变量的值。但是,当我以编程方式构建一个带有 % 符号的字符串时,它会打印文字。我也尝试根据他们的文档使用 $env:variablename
,但没有帮助。
下面是我正在编写的用于获取环境变量值的函数:
Function get-tc-env-var {
Param (
[Parameter(Mandatory=$true)]
[string]$env_var
)
Process
{
$var = Env:$env_var # tried both $Env and Env both dont work
if (!$var)
{
Write-Host "Can't get environment variable:" $env_var
}
else { return $Var.trim()}
}
}
如果你想通过另一个变量指定其名称来获取环境变量,你需要使用 Get-Item
:
Function get-tc-env-var {
Param (
[Parameter(Mandatory=$true)]
[string]$env_var
)
Process
{
$var = (Get-Item env:$env_var).value
if (!$var)
{
Write-Host "Can't get environment variable:" $env_var
}
else
{
return $Var.trim()
}
}
}