Yev*_*niy 5 powershell hashtable environment-variables
我想在环境变量中存储一个哈希表——这在 Powershell 中可行吗?
这是我测试的方法:
$env:test = @{}
$env:test
$env:test|gm
Run Code Online (Sandbox Code Playgroud)
并感到困惑,因为输出是:
System.Collections.Hashtable
类型名称:System.String
名称 MemberType 定义
---- ---------- ---------- 克隆方法 System.Object Clone()
CompareTo 方法 int CompareTo(System.Object value), int CompareTo(string strB) 。 ..
... 所以当我直接返回 $env:test 时,我得到 'Hashtable',但是当我通过管道将它传递给 get-member 时,system.string 被返回。有人可以解释这种行为吗?
环境变量($env:stringVariable)是字符串。但是,您似乎想要将哈希表类型的非字符串变量设置为全局变量。这可以通过使用全局修饰符 ($global:hashtableVariable)来完成。这将允许您从一个脚本文件访问另一个脚本文件中的变量,如此处所示
PowerShellScriptFile-1.ps1
$global:hashtableVariable = @{
'key1' = 'value1'
'key2' = 'value2'
}
Run Code Online (Sandbox Code Playgroud)
PowerShellScriptFile-2.ps1
$global:hashTableVariable.GetEnumerator() | ForEach-Object {
Write-Host "$($_.Key):$($_.Value)"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |