-3
我想寫比較兩個不同結構的CSV文件的腳本。我有一個名爲cisearch.csv
的文件,第二個文件名爲export.csv
。比較CSV與不同的結構
cisearch.csv
:
Name,P1,P2,P3,P4,P5 server1,100,,,, server2,100,100,,, server3,100,,,, server4,100,50,70,80,80
export.csv
:
Host;Drive server1;Drive C: Disk Usage server2;Drive C: Disk Usage server2;Drive D: Disk Usage server3;Drive C: Disk Usage server4;Drive C: Disk Usage server4;Drive D: Disk Usage server4;Drive E: Disk Usage server4;Drive F: Disk Usage server4;Drive G: Disk Usage
從劇本我只需要輸出,其中將只有這些都對cisearch.csv
項目,但不是在export.csv
。例如:
server4 Drive F: server4 Drive G:
我知道這對驅動器C:而不是另一個...
$csvI = Import-Csv c:\workspace\cisearch.csv
foreach($line in $csvI){
$hostname = $line.Name
$cDrive = $line.P1
$dDrive = $line.P2
$eDrive = $line.P3
$fDrive = $line.P4
$gDrive = $line.P5
if ($cDrive -gt 0) {
Select-String -pattern "$hostname;Drive C: Disk Usage" C:\workspace\export.csv | out-null
} else {
Write-Host Drive C: on $hostname non exist
}
}
目前尚不清楚對我有什麼選擇標準是。驅動器的數量(假設第一個CSV中的'P1'到'P5'字段代表驅動器)在兩個文件中都是相同的,那麼爲什麼驅動器F:和G:必須列出server4,而其他的不是? –
cisearch.csv是來自CMDB的報告:P1-P5是添加到服務器的分區 - server1只有一個驅動器,server2有兩個分區,server3只有一個,server4有5個分區。我需要將它與第二個來自Nagios的報告進行比較,監控什麼。我需要找到P1-P5和服務器名稱什麼是不監控... – g0mez
我認爲,我需要:如果dDrive是空白 - 無效值,繼續eDrive ...如果dDrive值大於0,請嘗試選擇字符串... – g0mez