PowerShell有哪些数据类型?

5

我在Stack Overflow和Google上搜索了,但找不到我的问题的答案:PowerShell有哪些数据类型(例如stringXMLregexint等)?Microsoft TechNet上似乎没有列表,也找不到简单列出它们的方法。


2
.NET 有它们,PowerShell 只是使用它们。 - user4003407
请查看以下链接,您将在页面底部找到一个列表:https://4sysops.com/archives/the-powershell-variable-naming-value-data-type/#data-type - FelipeS
你可以使用 .Net 提供的所有功能。否则,只需阅读教程,您就会明白使用它有多么容易。 - Nordes
谢谢你的回答,但我如何获取所有数据类型的列表?发布的链接遗憾地不完整。 谢谢@Nordes,但我已经阅读了很多教程并知道如何使用它们。这就是为什么我非常好奇PoSh有哪些数据类型... :) - Velocet
2
[AppDomain]::CurrentDomain.GetAssemblies() | % GetExportedTypes | % FullName - user4003407
1个回答

12

正如PetSerAl所暗示的那样, PowerShell中的类型系统是.NET CTS的直接扩展——任何已加载到当前托管PowerShell环境的AppDomain中的.NET类型都可以使用。

在.NET中,类型(类、结构体、枚举和内置值类型)被编译成程序集(通常以.dll文件的形式)。

如果您想要一个详尽的列表,您可以简单地枚举当前加载到内存中的所有程序集,然后枚举其中的所有类型:

[AppDomain]::CurrentDomain.GetAssemblies() |Foreach-Object {
    $_.GetExportedTypes()
}

如果你只想要所有Type Accelerators的列表(类似于[regex][wmi][adsi]等的短名称别名),你可以使用以下技巧:
$AcceleratorType = [psobject].Assembly.GetType("System.Management.Automation.TypeAccelerators")
$AcceleratorType::Get

这正是我一直在寻找的!谢谢你!所以我一直在寻找别名(类型加速器),而不是“真正”的类型。 - Velocet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接