You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何获取Hashtable类型环境变量的实际内容?

问题描述

执行PowerShell脚本 ./scriptName.ps1 -PAT ***** 时,尝试通过环境变量$env:Head获取脚本内的Hashtable类型变量$header,但控制台查看$env:Head时仅显示字符串System.Collections.Hashtable,无法查看Hashtable的实际内容(期望格式如下):

Name                           Value
----                           -----
authorization                  Basic ********

脚本代码如下:

param (
    [string]$PAT
)

$Personal_Access_Token = "$PAT"
$user = ""
$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $Personal_Access_Token)))
$header = @{authorization = "Basic $token"}
$env:Head = $header.psobject.ImmediateBaseObject
解决方案

环境变量仅支持存储字符串,无法直接保留Hashtable的类型信息,因此需要通过序列化、直接输出或会话变量的方式传递内容,以下是三种可行方案:

方案1:序列化Hashtable为JSON存入环境变量

修改脚本,将Hashtable转换为JSON字符串存储到环境变量,外部再解析回Hashtable:

param (
    [string]$PAT
)

$Personal_Access_Token = "$PAT"
$user = ""
$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $Personal_Access_Token)))
$header = @{authorization = "Basic $token"}
# 将Hashtable序列化为压缩JSON字符串
$env:Head = $header | ConvertTo-Json -Compress

外部控制台解析命令:

# 解析JSON字符串为Hashtable
$parsedHeader = $env:Head | ConvertFrom-Json -AsHashtable
# 查看Hashtable内容
$parsedHeader

方案2:脚本直接输出Hashtable,外部捕获输出

若无需通过环境变量传递,可让脚本直接输出$header,外部执行时捕获输出结果:
修改脚本:

param (
    [string]$PAT
)

$Personal_Access_Token = "$PAT"
$user = ""
$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $Personal_Access_Token)))
$header = @{authorization = "Basic $token"}
# 直接输出Hashtable
$header

外部执行并捕获:

$header = ./scriptName.ps1 -PAT *****
$header

方案3:使用PowerShell全局会话变量(同一会话内有效)

如果脚本与后续操作在同一个PowerShell会话中,可使用全局会话变量替代环境变量:
修改脚本:

param (
    [string]$PAT
)

$Personal_Access_Token = "$PAT"
$user = ""
$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $Personal_Access_Token)))
$header = @{authorization = "Basic $token"}
# 赋值给全局会话变量
$global:Head = $header

同一会话内直接访问:

$Head

内容的提问来源于stack exchange,提问作者samy KHEZNADJI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:42:51