2017-07-07 58 views
1

我有多個forloops運行與從.txt文件拉不同變量。我想將它們全部導出到一個單獨的csv文件中,同時它看起來就像在PowerShell中一樣。附加是我得到的PowerShell輸出,我希望看到第一個寫主機作爲Excel中的標題,其次是第一列的服務器名稱,第二列的UP或DOWN。 PowerShell的導出Csv多個forloop結果

enter image description here

Write-Host "Starting SVR2000MS" -ForegroundColor Yellow 
$servers = Get-Content C:\Users\username\Desktop\subfolder\SVR2000.txt 
foreach($server in $servers){ 
    if (Test-Connection -ComputerName $server -Count 1 -ErrorAction SilentlyContinue) { 
    Write-Host "$server, UP" -ForegroundColor Green 
} 
    else{ 
    Write-Host "$server, DOWN" -ForegroundColor Red 
    } 
} 

Write-Host "Starting SVR2003DC" -ForegroundColor Yellow 
$servers = Get-Content C:\Users\username\Desktop\subfolder\SVR2003.txt 
foreach($server in $servers){ 
    if (Test-Connection -ComputerName $server -Count 1 -ErrorAction SilentlyContinue) { 
    Write-Host "$server, UP" -ForegroundColor Green 
} 
    else{ 
    Write-Host "$server, DOWN" -ForegroundColor Red 
    } 
} 
+0

舉一個你期望的樣本,它會比解釋它容易。我目前沒有看到你有什麼和你想要的 –

+0

之間的差異我想輸出(如圖所示)輸出到csv與黃色字母作爲標題,其次是列1 IP/DNS名稱第2列的狀態爲UP或DOWN。對此還是很新的,謝謝! (它不會讓我添加一個新的圖片和我想要的excel) –

+0

您是否至少嘗試將輸出重定向到名爲test.csv的文件? –

回答

0

簡單的方法:

你只是打印出來,並把它放在一個文件

相反的Write-Host ...,做到:

"$server,UP" | Out-File test.csv -append 

你可以有更詳細的選擇通過使用對象,但它可能是爲了你的需要矯枉過正。

如果你想要一個乾淨的文件,你需要在開始時刪除它,因爲-append

順便說一句,在CSV :)逗號後沒有空間

編輯:

Write-Host專門寫...到主機,即控制檯,所以你不能在其他地方重定向它。

+0

工作正常!下一個問題是我需要改變什麼才能將$ server變量放在1列中,而在另一列中放置UP或DOWN狀態? –

+0

實施解決方案時,它將「IP/DNS,狀態」分爲1列而不是2個獨立的列。 –

+0

CSV代表逗號分隔值。 commais是分隔符,所以你在第一列有$ server,在第二列有UP/DOWN。如果你用Excel或Calc導入你的文件,你可能**必須告訴它逗號是實際的分隔符。 –