2009-07-31 9 views
1

次のコマンドで生成されたファイルにIDENTICALファイルを出力するにはどうすればよいですか? 。Powershell 2.0アウトファイルフォーマットナイトメール

DIR/S/B /-D * *> C:\のfiles.txt

は右、簡単なはず!?

EDIT: psが画面バッファの幅に基づいて出力を切り捨てていることが見つかりました。 format-tableでそれを修正し、スペースで区切ってみてください... format-listを試して、プロパティ見出しを取得してください。

答えて

1

ファイルに情報を書き込む方法はたくさんあります。 1つはセットコンテンツで、幅の問題はありません。また、FileInfoオブジェクトを文字列に変換すると、FullNameになります。

dir * -r | ?{!$_.PSIsCcontainer} | Set-Content C:\files.txt 

Out-Fileに問題があるのは、すべてのOut- *コマンドレットが自動書式設定ビューを使用するためです。これらのビューはコンソールを念頭に置いて作成されます。

2

正確である必要はありますか?どうして?あなたがPowerShellで文字列を解析しているとすれば、おそらく何か間違っていることでしょう...

1)cmd.exeを呼び出してください。

PS> cmd /c "dir /s /b /a-d *.* > c:\files.txt" 

2)私はあなたがネイティブPowershellから同じ結果を得ることができると信じています。しかし、私は個人的にあなたが変な副作用なしFullNameプロパティを取得するために「選択」を使用することはできませんという事実を嫌う

PS> gci -r | ?{ !$_.psiscontainer } | %{ $_.fullname } | out-file c:\files.txt 

など、NTFSのジャンクションで隠しファイルをすべてのエッジケースをテストするための責任を負うことはできませんダウンストリームのコマンドレットで。 foreachループの無意味な点があなたの邪魔にならないようにするには、Get-PropertyValueを PSCXまたはLinq- Josh Einsteinから選択してください。

+0

はい、他のツールに入力されたとおりに正確でなければなりませんでした。アウトファイルは画面バッファの幅に切り捨てられます –

+0

興味深い。ネイティブ>リダイレクトに同じ問題がありますか? –

関連する問題