我有多个forloops使用不同的变量运行.txt文件。我想将它全部导出到单个csv文件中,同时让它看起来就像在powershell中一样。附件是我获得PowerShell输出的内容,我希望第一个写主机作为excel中的标头,后面是第1列中的服务器名称,下面是第2列中的UP或DOWN。 的powershell
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)
简单方法:
您只需打印并将其放入文件
即可而不是Write-Host ...
,请执行:
"$server,UP" | Out-File test.csv -append
您可以通过使用对象获得更精细的选项,但可能会因您的需求而过度。
如果你想要一个干净的文件,你需要在开头删除它,因为-append
。
BTW,CSV中逗号后没有空格:)
修改强>
Write-Host
具体写入主机,即控制台,因此您无法将其重定向到其他位置。