Ping一个主机名列表,并将结果输出到powershell中的csv

Har*_*ngh 3 csv powershell loops ping

我有一个很大的主机名列表,我需要ping它以查看它们是上升还是下降.我在脚本编写方面并不是那么出色,但我设法解决了这个问题:

$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
  }
}
Run Code Online (Sandbox Code Playgroud)

这让我得到了我需要的东西,但我现在需要把这些结果写成csv文件,我不知道该怎么做.

请帮忙!

Ere*_*man 8

您可以使用以下代码(我只是将写入主机调用更改为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"
  }
}
Run Code Online (Sandbox Code Playgroud)

PS您还可以使用Out-File Cmdlet创建CSV文件