创建一个新对象
与其他一些脚本语言不同,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