PowerShell 创建一个新对象

示例

与其他脚本语言不同,PowerShell通过管道发送对象。这意味着当您将数据从一个命令发送到另一个命令时,必须能够创建,修改和收集对象。

创建对象很简单。您创建的大多数对象将是PowerShell中的自定义对象,其使用的类型是PSObject。PowerShell也将允许您创建可以在.NET中创建的任何对象。

这是创建具有一些属性的新对象的示例:

选项1:新对象

$newObject = New-Object -TypeName PSObject -Property @{
    Name = $env:username
    ID = 12
    Address = $null
}

# Returns
PS> $newObject
Name ID Address
---- -- -------
nem  12

您可以通过在命令前添加命令来将对象存储在变量中 $newObject =

您可能还需要存储对象的集合。这可以通过创建一个空的collection变量并将对象添加到collection中来完成,如下所示:

$newCollection = @()
$newCollection += New-Object -TypeName PSObject -Property @{
    Name = $env:username
    ID = 12
    Address = $null
}

然后,您可能希望逐对象遍历此集合。为此,请在文档中找到“循环”部分。

选项2:选择对象

以下是创建在互联网上仍然可以找到的对象的一种较不常见的方法:

$newObject = 'unuseddummy' | Select-Object -Property Name, ID, Address
$newObject.Name = $env:username
$newObject.ID = 12

# Returns
PS> $newObject
Name ID Address
---- -- -------
nem  12

选项3:pscustomobject类型加速器(需要PSv3 +)

有序类型加速器会强制PowerShell保持属性定义的顺序。您不需要使用有序类型加速器[PSCustomObject]:

$newObject = [PSCustomObject][Ordered]@{
    Name = $env:Username
    ID = 12
    Address = $null
}

# Returns
PS> $newObject
Name ID Address
---- -- -------
nem  12