我有一个Powershell脚本作为Azure DevOps管道的一部分。我也想从Windows命令行运行它。在Windows中调用它们之前如何设置它们?也许在一个cmd文件中?注意-这些是单次执行的临时操作,不想设置Windows环境变量。
我正在powershell脚本中访问如下环境变量:
$tfsAccessToken = If ($serverMode) {$env:SYSTEM_ACCESSTOKEN} else {"somethingelse"}
$tfsBuildDefinitionId = If ($serverMode) {$env:SYSTEM_DEFINITIONID} else {2}
答案 0 :(得分:1)
显示,设置或删除 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}"