2017-07-07 9 views
1

私は複数のforloopsを実行し、.txtファイルからさまざまな変数を引き出しています。 PowerShellの場合と同じように、このすべてを単一のcsvファイルにエクスポートしたいと考えています。添付されたPowerShellの出力には、最初の書き込みホストがExcelのヘッダーとして表示され、1列目のサーバー名、2列目のUPまたはDOWNが表示されます。 PowerShellのExport-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

ソリューションを実装する際、2つの別々の列ではなく、1つの列に「IP/DNS、Status」を置きます。 –

+0

CSVはカンマ区切りの値を表します。 commaisは区切り記号なので、第1列に$ server、第2列にUP/DOWNがあります。 ExcelまたはCalcでファイルをインポートする場合、Commaが実際のセパレータであることを伝える必要があります**。 –

関連する問題