【发布时间】:2012-10-19 03:50:56
【问题描述】:
我想在环境变量中存储一个哈希表——这在 Powershell 中可行吗?
我是这样测试的:
$env:test = @{}
$env:test
$env:test|gm
感到困惑,因为输出是:
System.Collections.Hashtable
类型名称:System.String
名称成员类型定义
---- ---------- ---------- 克隆方法 System.Object Clone()
CompareTo 方法 int CompareTo(System.Object 值),int CompareTo(字符串 strB) ...
...所以当我直接返回 $env:test 时,我得到了 'Hashtable',但是当我通过管道将它传递给 get-member 时, 返回 system.string。有人可以解释一下这种行为吗?
【问题讨论】:
-
为什么需要在环境变量中这样做?
-
另外,环境变量总是字符串。期间。
-
我有一个 {[int]$id,[System.Management.Automation.PSCredential]$cred} 的哈希值,我希望能够从脚本中的任何位置访问它。 env vars 总是字符串是有道理的,但为什么原始问题中描述的奇怪行为?
-
可以从脚本中的任何位置访问具有全局或脚本范围的变量。在提示符下输入:Get-Help about_scopes
-
没有特别的理由需要环境变量。我有一些变量存储在自定义环境空间中(例如:$env:MYSPACE:foo),我想知道我是否也可以在该空间中存储对象或引用。
标签: powershell environment-variables hashtable