小编Yos*_*aki的帖子

无法在 PowerShell 中的 Foreach 循环中创建对象

我正在尝试使用 PowerShell 中的 foreach 循环创建对象。尝试使用“while”循环,但也失败了。显然,循环方法不允许我创建对象......

无需再费周折...

我有两个脚本 - Class.psm1 和 Main.ps1。

在Class.psm1

Class Car {
    [string]$brand
    [string]$model
    [string]$color

    #Constructor
    Car ([string]$brand) {
         $this.brand = $brand

         switch -wildcard ($this.brand) {
             ('Toyota') {$this.model = 'ABC'; $this.color = 'red'; break}
             ('Honda') {$this.model = 'FGH'; $this.color = 'blue'; break}
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

在Main.ps1

Using module ".\Class.psm1"

$AllCars = {'Toyota', 'Honda'}
[array]$Objects = @()

foreach ($car in $AllCars) {
    $temp = New-Object Car("$car")
    $Objects += $temp
}
Run Code Online (Sandbox Code Playgroud)

Main.ps1 的输出是 $Objects 只是返回“Toyota”和“Honda”,而不是对象(以及它应该具有的属性)。

但是,如果我只是单独创建对象,它会工作得很好。

例如: …

powershell foreach loops object

0
推荐指数
1
解决办法
607
查看次数

标签 统计

foreach ×1

loops ×1

object ×1

powershell ×1