gpt4 book ai didi

powershell - 创建自定义 Powershell 对象的多个实例

转载 作者:行者123 更新时间:2023-12-04 02:18:26 25 4
gpt4 key购买 nike

我正在 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,否则在您的代码中引用类型$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 …。但是如果你在别处创建你的“项目”,那么拥有这个功能在那里也很有用。

关于powershell - 创建自定义 Powershell 对象的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com