Я пытаюсь получить одну ячейку для вывода вычислений строк другой ячейки. Некоторые ячейки вычисляются неправильно.Вычисление соты в CSV неправильное. Показан неправильный номер. Get Error
Вот мой пример данных:
Total Devices Vulnerability Description Comments Row1 3 Plugin:1234 Host1.Domain Device Affected: Host4.Domain Host1.Domain Host5.Domain
Row2 12 Plugin:5678 Host2.Domain Device Affected: Host3.Domain Host2.Domain
Это должно быть
Total Devices Vulnerability Description Comments Row1 3 Plugin:1234 Host1.Domain Device Affected: Host4.Domain Host1.Domain Host5.Domain
Row2 1 Plugin:5678 Host2.Domain Device Affected: Host2.Domain
Мой код:
# Определите имена хостов, которые мы хотим удалить $ PendingRemoval = "Host3.Domain", "Host6.Domain"
# Import the original data set
$Data = Import-Csv .\Old.csv
for($i = 0; $i -lt $data.Count; $i++)
{
# Grab all hostnames from the comments field
$HostNames = $Data[$i].Comments -split "`r?`n"
#Set Vulnerability Column Variable
[string]$VulnerabilityDesc = $Data[$i].'Vulnerability Description'
#Remove the Hostnames from Vulnerability Cells
foreach ($HostName in $HostNames) {
$VulnerabilityDesc = $VulnerabilityDesc.Replace($HostName, "")
}
$VulnerabilityDesc = $VulnerabilityDesc.Replace("Devices Affected", "")
$VulnerabilityDesc = $VulnerabilityDesc.TrimEnd()
$Data[$i].'Vulnerability Description' = $VulnerabilityDes
# Filter out unwanted ones
$HostNames = $HostNames |Where-Object {$_ -notin $PendingRemoval}
# Update original row
$Data[$i].Comments = $HostNames -join [System.Environment]::NewLine
$Data[$i].'Total Devices' = $HostNames.Length
}
# Export it to same csv
$Data | Export-Csv .\New.csv -NoTypeInformation
Дружелюбный совет: я показал вам, как на этот раз, но научиться форматировать свой вопрос и примеры кода было бы неплохо узнать на нашем сайте: http://stackoverflow.com/editing-help - также ваш пример CSV немного беспорядок, и я не знаю, какие значения должны жить под какими столбцами. – Kev
ok Я буду помнить об этом – ShanayL