2017-07-07 65 views
1

我有多个forloops运行与从.txt文件拉不同变量。我想将它们全部导出到一个单独的csv文件中,同时它看起来就像在PowerShell中一样。附加是我得到的PowerShell输出,我希望看到第一个写主机作为Excel中的标题,其次是第一列的服务器名称,第二列的UP或DOWN。 PowerShell的导出Csv多个forloop结果

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

举一个你期望的样本,它会比解释它容易。我目前没有看到你有什么和你想要的 –

+0

之间的差异我想输出(如图所示)输出到csv与黄色字母作为标题,其次是列1 IP/DNS名称第2列的状态为UP或DOWN。对此还是很新的,谢谢! (它不会让我添加一个新的图片和我想要的excel) –

+0

您是否至少尝试将输出重定向到名为test.csv的文件? –

回答

0

简单的方法:

你只是打印出来,并把它放在一个文件

相反的Write-Host ...,做到:

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

你可以有更详细的选择通过使用对象,但它可能是为了你的需要矫枉过正。

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

顺便说一句,在CSV :)逗号后没有空间

编辑:

Write-Host专门写...到主机,即控制台,所以你不能在其他地方重定向它。

+0

工作正常!下一个问题是我需要改变什么才能将$ server变量放在1列中,而在另一列中放置UP或DOWN状态? –

+0

实施解决方案时,它将“IP/DNS,状态”分为1列而不是2个独立的列。 –

+0

CSV代表逗号分隔值。 commais是分隔符,所以你在第一列有$ server,在第二列有UP/DOWN。如果你用Excel或Calc导入你的文件,你可能**必须告诉它逗号是实际的分隔符。 –