gpt4 book ai didi

Powershell - 为什么 $ENV | GET-MEMBER 不起作用?

转载 作者:行者123 更新时间:2023-12-02 06:30:40 27 4
gpt4 key购买 nike

我来自 C、C++、C#、python 背景,所以我将这种思维模式应用于我从头开始学习的 Powershell,但我有点困惑,乍一看似乎不一致并且不遵循所有对象的固定基类类型结构,以便可以以一致的方式查询事物。

以下工作正常:

   $host | get-member   $env:username

所以 $env 是一个有效的对象,但这不起作用:

   $env | get-member

这些也不起作用:

   $env.gettype()   dir $env   dir $env:

但是 $host 上的这种类型查询确实如此,所以我假设 $host 是一个 .net 变量但 $env 不是?

   $host.gettype()

我发现 env: 也适用于 dir(又名 get-childitem),但这个冒号是我不熟悉的另一种表示法,现在事情开始变得非常困惑。在这种情况下,这似乎不是字符串格式,我已经看到一些关于它的谷歌帖子,那是什么?它的行为类似于成员选择或字典键说明符。如果它是成员选择器或字典键,那么我希望 get-member 能够工作,因为它是一个标准对象。

这会输出我想要的变量和值,但我不明白为什么要使用这种语法。这也不是 DOS 语法,所以这是怎么回事?

   dir env:

但是 dir $env 似乎等同于 dir $env:userprofile????为什么?

因此 $host 看起来是一个 .net 对象,但 $env 或 env: 是完全不同的东西,我不知道它在事物的宏伟计划中是什么对象类型,似乎无法查询它的类型常规手段。最初的想法是它是某种列表对象,因为 get-childitem 与它一起工作,但除此之外我完全迷失了。

我显然在这里遗漏了一些东西,所以有人可以引导我朝着正确的方向前进吗?

最佳答案

Get-Help 'about_Providers' -ShowWindow 显示 env:drive Environment Provider ,即 Windows PowerShell providers 之一.

BUILT-IN PROVIDERS: Windows PowerShell includes a set of built-in providers that you can use to access the different types of data stores.

Provider      Drive         Data store
-------- ----- ----------
Alias Alias: Windows PowerShell aliases
Certificate Cert: x509 certificates for digital signatures
Environment Env: Windows environment variables
FileSystem * File system drives, directories, and files
Function Function: Windows PowerShell functions
Registry HKLM:, HKCU: Windows registry
Variable Variable: Windows PowerShell variables
WSMan WSMan: WS-Management configuration information

* The FileSystem drives vary on each system.

You can also create your own Windows PowerShell providers, and you can install providers that others develop. To list the providers that are available in your session, type: get-psprovider.

这就是为什么 Get-ChildItem env:dir $env: 相反,dir $env

关于Powershell - 为什么 $ENV | GET-MEMBER 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com