Export-Csv 多个 forloop 结果

Export-Csv multiple forloop results

我有多个 forloops 运行 从 .txt 文件中提取的不同变量。我想将这一切导出到一个 csv 文件中,同时让它看起来就像在 powershell 中一样。附件是我获得的 powershell 输出结果,我希望第一个 write-host 显示为 excel 中的 header,然后是第 1 列中的服务器名称和下方第 2 列中的 UP 或 DOWN它。 电源外壳

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
    }
}

简单方法:

您只需将其打印并放入文件即可

代替Write-Host ...,做:

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

您可以通过使用对象获得更精细的选项,但它可能无法满足您的需求。

如果你想要一个干净的文件,你需要在开头删除它,因为-append

顺便说一句,CSV 中的逗号后没有 space:)

编辑:

Write-Host 专门写入...到主机,即控制台,因此您无法将其重定向到其他地方。