如何在作为VSTS构建/发行版一部分运行的PowerShell脚本中检索变量?

时间:2018-08-02 13:31:11

标签: powershell azure-devops

运行Powershell脚本时,VSTS中出现错误。

我在我的代理上安装了Powershell。但我仍然收到此错误:

  

“ Get-VstsInput”一词无法识别为cmdlet的名称,   功能,脚本文件或可操作程序。

我在想什么。

3 个答案:

答案 0 :(得分:2)

您可以使用$env:VariableName在PowerShell脚本中访问变量。唯一的例外是秘密变量。这些必须通过param块显式传递到脚本中。

例如,如果您有一个名为$(Foo)的变量,则可以在PowerShell脚本中以$env:Foo的形式访问它。如果变量名称中有句点,则将它们用下划线替换。因此$(Foo.Bar)成为$env:Foo_Bar

这也不适用于目标计算机上的PowerShell。如果通过该任务在远程计算机上运行PowerShell脚本,则必须将任何变量作为参数传递,因为构建代理的环境变量未填充在目标计算机上。

除非您正在编写自定义任务,否则无需使用VSTS SDK。

答案 1 :(得分:0)

方法Get-VstsInput是“用于PowerShell的VSTS Task SDK”的一部分,可能未在SDK中安装代理。

使用以下命令在开发服务器上安装SDK:

Save-Module -Name VstsTaskSdk -Path .\

答案 2 :(得分:0)

Get-VstsInput用于开发构建/发布任务(不适用于在PowerShell任务中执行脚本)。有关更多详细信息,您可以参考VSTS DevOps Task SDKvsts-task-lib commands

  • 如果要在PowerShell任务中使用已定义的变量,可以将其以$(variableName)的格式使用。
  • 如果要通过PowerShell任务获取用于构建/发布的所有可访问变量,则可以使用命令ls env: