我的课堂知识相对较新。但是我想用powershell输出类的所有对象/实例。这有可能吗?下面是我如何创建类计算机的两个对象的示例。
Class Computer {
[String]$Name
[String]$Description
[String]$Type
}
$NewComputer = New-Object 'Computer'
$NewComputer.Name = 'ultra1'
$NewComputer.Description = 'Lenovo Yoga 900'
$NewComputer.Type = 'Ultrabook'
$NewComputer = New-Object 'Computer'
$NewComputer.Name = 'ultra2'
$NewComputer.Description = 'Lenovo Yoga X1'
$NewComputer.Type = 'Ultrabook' 现在我想输出这两个对象,我如何做到这一点?
发布于 2019-08-06 09:00:02
从您的评论“如果有可能获得类的对象而不将它们放入集合”,我认为您想要做的是使用类创建新的Computer对象,然后使用这些对象作为单独的变量。
为了更容易地创建,我建议您向类中添加一个构造函数,这样您就可以在一行中创建对象:
Class Computer {
[String]$Name
[String]$Description
[String]$Type
# add a constructor
Computer(
[string]$n,
[string]$d,
[string]$t
){
$this.Name = $n
$this.Description = $d
$this.Type = $t
}
}
# now create the computer objects
[Computer]$pcUltra1 = [Computer]::new('ultra1','Lenovo Yoga 900','Ultrabook')
[Computer]$pcUltra2 = [Computer]::new('ultra2','Lenovo Yoga X1','Ultrabook')
# show what you have now
$pcUltra1
$pcUltra2输出:
名称描述类型
希望这有帮助
发布于 2019-08-06 07:45:25
也许这个能帮上忙
Class Computer {
[String]$Name
[String]$Description
[String]$Type
}
# a collection of computers
$computers =@()
$NewComputer = New-Object 'Computer'
$NewComputer.Name = ‘ultra1’
$NewComputer.Description = ‘Lenovo Yoga 900’
$NewComputer.Type = ‘Ultrabook’
# append a computer to teh collection
$computers += $NewComputer
$NewComputer = New-Object 'Computer'
$NewComputer.Name = ‘ultra2’
$NewComputer.Description = ‘Lenovo Yoga X1’
$NewComputer.Type = ‘Ultrabook’
# append a computer to teh collection
$computers += $NewComputer
# this outputs each of the computers
$computers
# or you can format the data in a table
$computers | Format-Table -AutoSize
# or in a list
$computers | Format-List *
# or as json
$computers | ConvertTo-Json发布于 2019-08-06 11:29:13
假设您没有重新绑定任何名称,则可以执行以下操作:
Get-Variable | Select-Object -ExpandProperty Value |
Where-Object { $_.GetType().Name -eq 'Computer' }https://stackoverflow.com/questions/57371102
复制相似问题