2016-07-20 4 views
1

私が書いたコードは、一部のデータをキャプチャしてCSVファイルに書き出します。私はそれを二通り書きました。 1)最初のやり方は、あたかもそれが書かれているかのように、すべての結果よりもむしろ最後の結果を与えるだけです。 2)第二の方法は、私にエクスポート-CSVが私のforeachループで動作しない

WAY 1)

foreach ($Computer in $CompObjToRM) 
{ 
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation 
} 

WAY 2)

foreach ($Computer in $CompObjToRM) 
{ 
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName 
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation 

は私が間違って何をやっている "空のパイプ要素が許可されていません" というエラーを与えますか?

+0

ウェイ1構成の柔軟性の高い程度提供していますすることができます - はい、あなたの仮定を正しい。方法2 - '| Out-File'は単独のコマンド**です。 'foreach'を' Out-File'にパイプさせようとしていますが、それは '{}'がどのように動作するかではありません。角括弧は単に 'foreach'の開始と終了を示します。どのように指示することなく、データ自体は出力されません。 – gravity

+0

私は私がexport-csvにコマンド結果をパイプした後、Export-CSVコマンドで-NoClobberを使用する必要があると私は思っています。コードを修正して実行して、私の愚かさを確認したり拒否したりしてください。 – JRN

+0

これをコード化すると、foreach($ CompObjToRMの$ Computer) { Get-ADComputer -Identity $ Computer |名前、DistinguishedNameを選択| Export-CSV -NoClobber C:\ T2 \ ServersToRemoveFromAD2.csv -NoTypeInformation }エラー:ファイル 'C:\ T2 \ ServersToRemoveFromAD2.csv'が既に存在します。 – JRN

答えて

1

いずれに同じファイルの上書きを避けるためにExport-Csv-Appendスイッチパラメータを使用します。

foreach ($Computer in $CompObjToRM) 
{ 
    Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -Append -NoTypeInformation 
} 

または(すべての出力パイプすることができますそこからExport-Csvに)ForEach-Objectコマンドレットを使用し

$CompObjToRM |ForEach-Object { 
    Get-ADComputer -Identity $_ | Select Name, DistinguishedName 
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation 

ここで大きな違いは、foreach($thing in $things){}が言語の組み込み意味機能であることです。 ForEach-Objectコマンドレット - パイプラインの入力と出力をサポートする再利用可能なコードです。

ForEach-Objectは少し遅くなる(と少し異なる動作をする)foreachループよりも、ほとんどの場合、それは単純にあなたのパイプライン

+0

'foreach'呼び出しの後にANDの前に' | 'を使い分けています。元のポスターがちょっと混乱して、ポストパイプが期待どおりに機能しないのはなぜですか? :-) – gravity

+1

@gravity true、いくつかの段落で答えを更新しました(気軽に追加してください) –

+0

マティアスは本当に素晴らしいことをありがとう – JRN

関連する問題