指定されたディレクトリ内のすべてのファイルとディレクトリをフルパスで再帰的ではなく一覧表示するにはどうすればよいでしょうか?

指定されたディレクトリ内のすべてのファイルとディレクトリをフルパスで再帰的ではなく一覧表示するにはどうすればよいでしょうか?

コマンドに似ていますdir /bが、隠しファイルとシステム ファイルも必要です。組み込みの dir コマンドでは、このような「隠し」ファイルを他のファイルと一緒に一覧表示することはできないため、/s完全なパスを使用する必要があります。これはもちろん再帰的ではありません。

Windows バージョンのコマンドも試してみましたlsが、やはりうまくいきませんでした。フルパスを表示するには、mydir\*リストするディレクトリの最後にアスタリスク ( ) を追加する必要がありますが、これにより再帰的になります。

答え1

何もインストールしたくない場合は、次のコマンドを使用することもできます。

for /f "delims=" %a in ('cd') do @for /f %b in ('dir /b /a') do @echo %a\%b

cd最初にディレクトリに入る必要があります。そうしないと機能しません。

答え2

次のコマンドを試してください:

dir /s /b /a

FINDすべてのファイルが表示されます。必要に応じて実行したり、フォルダー名を追加したりできます。

答え3

ls を試したのであれば、cygwin をインストールしてみてはいかがでしょうか? cygwin で find を使用できます:

find -name "*"

cygwin をインストールし、cygwin で find を使用する場合は、Windows にも find.exe があるため、cygwin での find がフル パスを使用して呼び出されるか、system32 の前に cygwin bin パスを挿入するようにしてください。

答え4

これは古い質問ですが、とにかく何か追加したいと思いました。

DIR は、必要なすべてのディレクトリ ツリー、特に C: 上のディレクトリ ツリーを正しく走査するわけではありません。さまざまな保護のため、一部の場所では単に処理を中止します。

ATTRIB の方が、より多くのものを見つけるので、はるかにうまく機能します。(なぜこのような違いがあるのでしょうか。この点で、MS が 1 つのユーティリティをある方法で動作させ、別のユーティリティを別の方法で動作させるのはなぜでしょうか。私にはわかりません。) 私の経験では、これは場当たり的ではありますが、これを処理する最も効果的な方法は、次の 2 つのリストを取得することです。

attrib /s /d C:\ >%TEMP%\C-with-directories.txt

attrib /s C:\ >%TEMP%\C-without-directories.txt

そして、それらの違いを取得します。その違いは、C: 上のディレクトリです (隠しすぎているものは除きます)。C: の場合、通常は管理者として実行します。

関連情報