将 powershell 命令的输出分配给变量

And*_*rew 4 windows powershell command-line-interface

我正在努力能够运行命令并附加到 Windows 中的变量!

在 mac 上我会运行:

export TOKEN="$(curl --header "Metadata-Flavor: Google" --get --data-urlencode "audience=http://vault/${ROLE}" --data-urlencode "format=full" "http://metadata/computeMetadata/v1/instance/service-accounts/default/identity")"
Run Code Online (Sandbox Code Playgroud)

但很难在 Windows 上运行相同的内容(已尝试使用管道输出>但没有运气)!

我明显错过了什么!

Fox*_*loy 6

您只需使用此语法即可分配 PowerShell 中任何命令的输出。

$myNewVar = hostname #or any other command
Run Code Online (Sandbox Code Playgroud)

将会发生的情况是命令的输出被消耗并存储在变量中,因此没有任何内容输出到屏幕上。

如果您想在分配变量的同时也输出到屏幕,请使用该Tee命令。

hostname | tee-object -variable myNewVar
Run Code Online (Sandbox Code Playgroud)

  • 很好,但请注意 OP 命令中的“export”,因此值得显示“$env:myNewVar = ...” (3认同)