gpt4 book ai didi

arrays - 添加列并将值分配给现有数组

转载 作者:行者123 更新时间:2023-12-03 14:21:43 25 4
gpt4 key购买 nike

我想为从CSV生成的现有数组添加列和值。

这是我的代码:

$mycsv = "C:\Users\test\Documents\serveurs.csv"
$servers = Import-Csv $mycsv

结果如下:
ServerName                              Ip----------                              --Castor                                  172.22.0.64Pollux                                  172.22.0.67

I want to add new column with value for each ServerName, like this:

ServerName                              Ip                  Available----------                              --                  ---------Castor                                  172.22.0.64         YesPollux                                  172.22.0.67         No

I tried the code below:

$item = New-Object PSObject
$item | Add-Member -Type NoteProperty -Name 'Available' -Value 'Yes'

$servers += $item

但这实际上不起作用,有人可以帮助我吗?

最终的想法是使用 Test-Connection cmdlet为服务器可访问或无法通过网络分配值。

最佳答案

您可以使用计算出的属性来确定每个服务器的可用性:

$csv1 = 'C:\Users\test\Documents\serveurs.csv'
$csv2 = 'C:\Users\test\Documents\serveurs2.csv'

Import-Csv $csv1 |
Select-Object ServerName, Ip,
@{n='Available';e={[bool](Test-Connection -Count 1 $_.Ip 2>$null)}} |
Export-Csv $csv2 -NoType

但是请注意,即使将测试限制为每个服务器使用一个探针,这也会花费一些时间,因为所有项目都是按顺序处理的。如果要测试的服务器很多,则可能要将检查作为并行作业运行:

$csv = 'C:\Users\test\Documents\serveurs.csv'

$servers = Import-Csv $csv

# clear job queue
Remove-Job *
# load job queue with test jobs
$servers | ForEach-Object {
Start-Job -ScriptBlock {
$args[0]
[bool](Test-Connection -Count 1 $args[0] 2>$null)
} -ArgumentList $_.Ip
}
# wait for jobs to finish
do {
Start-Sleep -Milliseconds 100
} while (Get-Job -State 'Running')

# gather job results into hashtable
$availability = @{}
Get-Job | ForEach-Object {
$result = Receive-Job -Id $_.Id
$availability[$result[0]] = $result[1]
Remove-Job -Id $_.Id
}

# add availability column to server data and export back to CSV
$servers |
Select-Object ServerName, Ip, @{n='Available';e={$availability[$_.Ip]}} |
Export-Csv $csv -NoType

关于arrays - 添加列并将值分配给现有数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259199/

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