指定されたディレクトリ内のすべてのファイルとディレクトリをフルパスでリストする方法はありますが、再帰的ではありませんか?


14

なんとなくdir /bコマンドが好きですが、そこに隠しファイルとシステムファイルも必要です。組み込みのdirコマンドでは、このような「隠された」ファイルを残りのリストに含めることはできません。/s完全なパスを使用する必要がありますが、これはもちろん非再帰的です。

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


1
私はあなたの問題の一部を解決できます:/ aフラグはdirに隠しファイルとシステムファイルを含めます。
ハリージョンストン

回答:


9

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

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

あなたはに持ってcd最初のディレクトリにまたはそれが動作しません。


2
またはこれ!for / f "delims ="%b in( 'dir / b / a')do @echo%cd%\%bしかし、あなたの手法は興味深いテクニックであり、非常に一般的です
-barlop

このコマンドの仕組みを教えてください。
rubo77

18

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

dir /s /b /a

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


1

lsを試してみたら、cygwinをインストールしてみませんか?cygwinでfindを使用できます:

find -name "*"

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


私はunixutilsをチェックし、findは再帰的です:(
rsk82

2
@ rsk82:では-maxdepth 1、そうではありません。
デニス

0

gnuwin32でsedをダウンロードできます。これにより、現在のディレクトリが追加されます。

%cd%を実行しても機能しません。.で%cd:\=\\%すべて\\\に変換し\ます。

C:\WINDOWS>dir /b | sed "s/^/%cd:\=\\%\\/" 
C:\WINDOWS\0.log
C:\WINDOWS\003109_.tmp
C:\WINDOWS\addins

0

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

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:の場合、通常は管理者として実行します。


0

ディレクトリリストを操作したいので、「ディレクトリの印刷」を検索しました。そのための指示を見つけましたが、レジストリへの変更が含まれていました。これをいじりたくない、リストを印刷したくない、使用したい、レジストリを変更せずに目標を達成する方法を見つけました。ユーティリティディレクトリに保存する2つのバッチファイルプログラムを作成しました。次に、ディレクトリを印刷または操作したい場合、適切なバッチファイルをサブジェクトディレクトリにコピーして実行します。どうぞ:

rem PrintThisDirectory.bat
rem Prints the directory where it resides
@echo off
dir %1/-p/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"

Rem ShowThisDirectory.bat
Rem Displays in Notepad the Directory where it resides
@echo off
dir %1/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.