创建对象

New-Object cmdlet 用于创建对象。

# Create a DateTime object and stores the object in variable "$var"
$var = New-Object System.DateTime

# calling constructor with parameters
$sr = New-Object System.IO.StreamReader -ArgumentList "file path"

在许多情况下,将创建一个新对象以导出数据或将其传递给另一个命令行开关。这可以这样做:

$newObject = New-Object -TypeName PSObject -Property @{
    ComputerName = "SERVER1"
    Role = "Interface"
    Environment = "Production"
}

创建对象的方法有很多种。以下方法可能是创建 PSCustomObject 的最短,最快的方法:

$newObject = [PSCustomObject]@{
    ComputerName = 'SERVER1'
    Role         = 'Interface'
    Environment  = 'Production'
}

如果你已经有了一个对象,但只需要一个或两个额外的属性,你只需使用 Select-Object 添加该属性:

Get-ChildItem | Select-Object FullName, Name, 
    @{Name='DateTime'; Expression={Get-Date}}, 
    @{Name='PropertieName'; Expression={'CustomValue'}}

所有对象都可以存储在变量中或传递到管道中。你还可以将这些对象添加到集合中,然后在结尾显示结果。

对象集合与 Export-CSV(和 Import-CSV)配合良好。CSV 的每一行都是一个对象,每一列都是一个属性。

格式命令将对象转换为文本流以供显示。避免使用 Format- *命令直到任何数据处理的最后一步,以保持对象的可用性。