PowerShell:格式化和排序环境变量

lon*_*nix 3 windows powershell environment-variables

使用 PowerShell,我可以获得所有(当前进程)环境变量并对其进行格式化和排序:

gci env: | %{"{0}={1}" -f $_.Name,$_.Value} | sort
Run Code Online (Sandbox Code Playgroud)

这使:

a=foo
b=bar
c=baz
Run Code Online (Sandbox Code Playgroud)

但这给出了所有流程变量,我只想要用户变量,所以我这样做:

[Environment]::GetEnvironmentVariables("User") | %{"{0}={1}" -f $_.Name,$_.Value} | sort
Run Code Online (Sandbox Code Playgroud)

但这仅输出:

=
Run Code Online (Sandbox Code Playgroud)

[Environment]::GetEnvironmentVariables("User")作品的东西之后是问题。

EBG*_*een 6

问题是[Environment]::GetEnvironmentVariables("User")返回一个哈希表,而不是一个对象集合。有几种方法可以得到你想要的东西。这是一个:

([Environment]::GetEnvironmentVariables("User")).GetEnumerator() | %{'{0} = {1}' -f $_.Key, $_.Value}
Run Code Online (Sandbox Code Playgroud)