当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:何时使用 Add-Type 和 New-Object ?

作者:精品下载站 日期:2024-12-14 05:31:56 浏览:15 分类:玩电脑

PowerShell:何时使用 Add-Type 和 New-Object ?


在这篇博文中,我将讨论何时需要使用 Add-Type 添加类以及何时可以使用 New-Object 提供类。我想说,让我们开始吧。

新对象

预定义的 .NET 类:PowerShell 使某些预定义的 .NET 类直接可用,而无需使用“Add-Type”加载它们。

您可以简单地使用“New-Object”来创建这些类的实例。这包括许多常用的类,例如“System.String”、“System.DateTime”、“System.IO.FileInfo”

以下是一些示例:

$player = New-Object System.Media.SoundPlayer "$env:windir\Media\windows logon.wav" -Verbose
$player | Get-Member
$player.PlayLooping() # Methode tu etwas ==> Looping
$player.Stop() # Methode ==> Stop

[System.Math]::Round('123.6',0)

添加类型

用户定义的类或外部 .NET 程序集:如果您已创建用户定义的 NET 类或想要访问默认情况下在 PowerShell 中不可用的外部 .NET 程序集中的函数和类,则必须使用“Add-Type”在运行时加载类或程序集。之后,您可以使用“New-Object”创建这些加载的类的实例。

以下是一些示例:

[Microsoft.VisualBasic]::InputBox("Enter a computer name", "Computer") # Error. Wird nicht gefunden

Add-Type -AssemblyName Microsoft.VisualBasic # adds a .NET class to this session
$computer = [Microsoft.VisualBasic.Interaction]::InputBox("Enter a computer name", "Computer")
$Test = Test-Connection -ComputerName $computer -Count 1 -ErrorAction SilentlyContinue
If ($Test.Status -eq 'Success') {
    [Microsoft.VisualBasic.Interaction]::MsgBox("Test for $computer successful.", "OKOnly,SystemModal,Information", "Success")
}
else {
[Microsoft.VisualBasic.Interaction]::MsgBox("Test for $computer failed.", "OKOnly,SystemModal,Critical", "Error")
}

顺便说一句,您可以列出所有可访问的预定义类,而无需将它们加载到会话中。

Get-TypeData -TypeName '*'

[玩转系统] PowerShell:何时使用 Add-Type 和 New-Object ?

我希望这对您有所帮助并且得到了很好的解释。下次见。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯