创建一个新对象

与其他一些脚本语言不同,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 = 添加命令来将对象存储在变量中

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

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

然后,你可能希望按对象迭代此集合对象。为此,请在文档中找到循环部分。

选项 2:选择对象

创建在 Internet 上仍然可以找到的对象的不太常见的方法如下:

$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