2017-09-28 22 views
0

私は、私たちのサーバーからすべての日付と時刻の情報を取得するスクリプトを作成しています。スクリプトは、テキストファイルからサーバーを取得します。私は、テキストファイルに書き込まれるスクリプトの出力を取得しています。Powershellのテキストファイルへの出力

私はそうのようなアウトファイルとパイプを使用してみました:

$servers = gc "C:\Users\Public\Shell_NTP\TestList.txt" 

foreach ($server in $servers){ 
$dt = gwmi win32_operatingsystem -computer $server 
$dt_str = $dt.converttodatetime($dt.localdatetime) 
write-host "$($server) current local time is $($dt_str)" | Out-File 
"C:\Users\Public\Shell_NTP\TestListOutput.txt" 

は、その後、私はそうのような単純なニンジン出力しようとした:

$servers = gc "C:\Users\Public\Shell_NTP\TestList.txt" 

foreach ($server in $servers){ 
$dt = gwmi win32_operatingsystem -computer $server 
$dt_str = $dt.converttodatetime($dt.localdatetime) 
write-host "$($server) current local time is $($dt_str)" > 
C:\Users\Public\Shell_NTP\TestListOutput.txt 

をそして、それはどちらか動作しませんでした。だから、どんな助けや助言も素晴らしいだろう。

TL; DR PowerShellの出力をテキストファイルまたはその他の使用可能なファイル形式に変換しようとしています。

答えて

1

write-hostを使用しないでください - コンソールへの出力のみご文字列ますwrite-output

write-hostを使用し、データがpipleline渡されることはありません。

0

あなただけ

"text" | Out-File ... 
テキストファイルや他のいくつかのより多くの使用可能なファイル形式に

CSVは、より使用可能な形式であるwrite-outputあなたをすることができます使用する必要はありません。あなたが書いている書式は、データをテキストから取り戻すために再度処理しなければならないものです。 CSVに戻すにはImport-Csvすることができます。または、Excelなどで開きます。

gc "C:\Users\Public\Shell_NTP\TestList.txt" | ForEach { 

    $dt = gwmi win32_operatingsystem -Computer $_ 

    [PSCustomObject]@{ 
     'ServerName' = $_ 
     'DateTime' = $dt.converttodatetime($dt.localdatetime) 
    } 

} | Export-Csv C:\Users\Public\Shell_NTP\TestListOutput.csv -NoTypeInformation