Export-Csv多个forloop结果

时间:2017-07-07 14:00:28

标签: powershell powershell-v4.0

我有多个forloops使用不同的变量运行.txt文件。我想将它全部导出到单个csv文件中,同时让它看起来就像在powershell中一样。附件是我获得PowerShell输出的内容,我希望第一个写主机作为excel中的标头,后面是第1列中的服务器名称,下面是第2列中的UP或DOWN。 的powershell

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

1 个答案:

答案 0 :(得分:0)

简单方法:

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

即可

而不是Write-Host ...,请执行:

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

您可以通过使用对象获得更精细的选项,但可能会因您的需求而过度。

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

BTW,CSV中逗号后没有空格:)

修改

Write-Host具体写入主机,即控制台,因此您无法将其重定向到其他位置。