我正在 Powershell 脚本中创建一个新对象,或者实际上是一个对象类型。我想创建该对象的多个实例。我该怎么做呢?
下面的代码是我正在处理的代码,看起来数组中的所有实例都引用相同的对象,包含相同的值。
# Define output object
$projectType = new-object System.Object
$projectType | add-member -membertype noteproperty -value "" -name Project
$projectType | add-member -membertype noteproperty -value "" -name Category
$projectType | add-member -membertype noteproperty -value "" -name Description
# Import data
$data = import-csv $input -erroraction stop
# Create a generic collection object
$projects = @()
# Parse data
foreach ($line in $data) {
$project = $projectType
$project.Project = $line.Id
$project.Category = $line.Naam
$project.Description = $line.Omschrijving
$projects += $project
}
$projects | Export-Csv output.csv -NoTypeInformation -Force
你必须使用New-Object
对于任何,嗯,new对象,否则是引用类型$projectType
在您的代码中引用同一个对象。这是更改后的代码:
# Define output object
function New-Project {
New-Object PSObject -Property @{
Project = ''
Category = ''
Description = ''
}
}
# Parse data
$projects = @()
foreach ($line in 1..9) {
$project = New-Project
$project.Project = $line
$project.Category = $line
$project.Description = $line
$projects += $project
}
# Continue
$projects
在这种特殊情况下,不要使用该函数New-Project
你可以将它的主体移动到循环中,例如$project = New-Object PSObject …
。但是,如果您在其他地方创建“项目”,那么拥有此功能也将很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)