1

PSコマンドがあります:

PowerShell.exe "dir -Verbose -Recurse | Select-Object Mode, Length, Name, Directory | Export-Csv "listing.csv""

これは、私が望む方法でディレクトリを一覧表示するように機能しますが、注意点が 1 つあります。ディレクトリ構造またはファイル名が上限に達した場合 (260 文字だと思います)、結果の csv にこのファイルが一覧表示されず、エラーがスローされます。

これを 8.3 表記と互換性を持たせるための提案はありますか? これがすべてのファイルを取得する唯一の方法だと思います。

4

1 に答える 1

1

私はこれをたくさん扱ってきましたが、残念ながら、ファイル名がまだ 260 文字を超える可能性があるため、多くの場合、8.3 表記法はまだ機能しません。ドライブのマウントを使用してファイル名を短くすることは可能ですが、それは少し面倒です。私が見つけた最善の方法は、260 文字の制限がない AlphaFS と呼ばれる .NET ライブラリを使用して問題を回避することです。詳細を読むか、ここからダウンロードできます。以前に .NET クラスを直接操作したことがない場合は、慣れるまでに少し時間がかかりますが、奇妙なハックを試したり、8.3 表記法を扱ったりするよりははるかに優れています。dir -verbose -recurseアセンブリをロードしたら、 に置き換えます([Alphaleonis.Win32.Filesystem.Directory]::GetFiles((pwd).path,"*","AllDirectories"))。これはファイルのみを取得することに注意してください。ディレクトリの場合、置き換える以外は同じコードを使用しGetFilesますGetDirectories

于 2016-08-10T20:16:42.767 に答える