如何为Powershell脚本传递或设置环境变量?

时间:2019-07-28 04:02:18

标签: powershell

我有一个Powershell脚本作为Azure DevOps管道的一部分。我也想从Windows命令行运行它。在Windows中调用它们之前如何设置它们?也许在一个cmd文件中?注意-这些是单次执行的临时操作,不想设置Windows环境变量。

我正在powershell脚本中访问如下环境变量:

$tfsAccessToken = If ($serverMode) {$env:SYSTEM_ACCESSTOKEN} else {"somethingelse"}
$tfsBuildDefinitionId = If ($serverMode) {$env:SYSTEM_DEFINITIONID} else {2}

1 个答案:

答案 0 :(得分:1)

SET command

  

显示,设置或删除 CMD 环境变量。所做的更改   与SET一起使用将仅保留当前 CMD 的持续时间   会话

示例

据说,_foo环境变量未在新打开的 CMD 提示符下定义:

set _foo
Environment variable _foo not defined
powershell -nologo -noprofile -command "& {$env:_foo ; $null -eq $env:_foo}"
True

但是,如果定义了_foo环境变量,则它在子进程powershell中可见:

set "_foo=bar"
powershell -nologo -noprofile -command "& {$env:_foo ; $null -eq $env:_foo}"
bar
False

另一个示例(异步子进程powershell):

set "_foo=bar"
start "SO_57237835" powershell -noexit -nologo -noprofile -command "& {$env:_foo;$null -eq $env:_foo}"

SO_57237835