【发布时间】:2021-07-19 18:46:41
【问题描述】:
我正在编写一个脚本来根据不同的参数清点计算机。在脚本的其中一个部分中,我需要添加有关收到 CSV 文件的地区的信息。 为了在每个数组的开头添加一个属性,我编写了一个函数:
function Add-LocationProperty ($Array, $LocationName)
{
$Array | ForEach-Object {$_ | Add-Member -MemberType NoteProperty -Name Location -Value "$LocationName"}
$OrderSelection = @()
$OrderSelection += $Array[0].PSObject.Properties.Name[-1]
$OrderSelection += $Array[0].PSObject.Properties.Name | Select-Object -SkipLast 1
$Array = $Array | Select-Object $OrderSelection
Return $Array
}
$IpConfCSV = Add-LocationProperty -Array $IpConfCSV -LocationName $LocationName
$OSCSV = Add-LocationProperty -Array $OSCSV -LocationName $Location.Name
$SoftCSV = Add-LocationProperty -Array $SoftCSV -LocationName $LocationName
$CPUcsv = Add-LocationProperty -Array $CPUcsv -LocationName $LocationName
$RAMcsv = Add-LocationProperty -Array $RAMcsv -LocationName $LocationName
$DiskCSV = Add-LocationProperty -Array $DiskCSV -LocationName $LocationName
$SMBcsv = Add-LocationProperty -Array $SMBcsv -LocationName $LocationName
从代码中您可以看到我对每个数组应用了相同的操作。有什么方法可以缩短代码,例如,通过使用循环? 下面的代码不起作用:
$IpConfCSV, $OSCSV, $SoftCSV, $CPUcsv, $RAMcsv, $DiskCSV, $SMBcsv | ForEach-Object {$ = Add-LocationProperty -Array $ -LocationName $LocationName}
【问题讨论】:
标签: arrays powershell loops