2015-04-07 87 views
2

我有一大堆我需要ping的主機名以查看它們是否啓動或關閉。我不是在腳本真的那麼偉大,但我設法弄清楚這麼多了:Ping主機名列表並將結果輸出到powershell中的csv

$names = Get-content "hnames.txt" 

foreach ($name in $names){ 
    if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){ 
    Write-Host "$name is up" -ForegroundColor Green 
    } 
    else{ 
    Write-Host "$name is down" -ForegroundColor Red 
    } 
} 

這讓我我需要什麼,但我現在需要寫出這些結果爲csv文件,我不知道如何要做到這一點。

請幫忙!

回答

5

您可以改用以下代碼(我簡單地將寫主機調用改爲CSV格式),並使用「PowerShell.exe script.ps> output.csv」 執行它。請注意,您必須從文件夾執行它包含hnames.txt,或者只需將「hnames.txt」更改爲完整路徑即可。

$names = Get-content "hnames.txt" 

foreach ($name in $names){ 
    if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){ 
    Write-Host "$name,up" 
    } 
    else{ 
    Write-Host "$name,down" 
    } 
} 

P.S.您也可以使用Out-File Cmdlet來創建CSV文件

+0

甜!這工作!有沒有辦法讓腳本本身打印到csv文件而不是管道?我需要把它交給我的一位同事,他寧願只是運行腳本。 –

+0

是的,您可以使用'Add-Content' cmdlet而不是Write-host cmdlet,例如'Add-Content output.csv「$ name,up''' –

0

我是Powershell的一名完全新手,所以我將此作爲一項學習任務,因爲我需要一種快速而簡單的方法來檢查PC的上/關閉狀態。這些調整是需要得到它輸出乾淨的屏幕和一個TXT文件

$Output= @() 
$names = Get-content "hnames.txt" 
foreach ($name in $names){ 
    if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){ 
    $Output+= "$name,up" 
    Write-Host "$Name,up" 
    } 
    else{ 
    $Output+= "$name,down" 
    Write-Host "$Name,down" 
    } 
} 
$Output | Out-file "C:\support\result.csv" 
相關問題