どういうわけかdir /b
コマンドのようですが、そこに隠しファイルとシステムファイルも必要です。組み込みのdirコマンドでは、このような「隠された」ファイルを残りのファイルと一緒にリストすることはできません。/s
を使用してフルパスを指定する必要があります。もちろん、これは再帰的ではありません。
私はls
コマンドのWindowsバージョンで遊んでも、運もありませんでした。フルパスを表示するには、リストするディレクトリの最後にアスタリスク(mydir\*
)を追加する必要がありますが、これにより再帰的になります。
何もインストールしたくない場合は、次のコマンドを使用することもできます。
for /f "delims=" %a in ('cd') do @for /f %b in ('dir /b /a') do @echo %a\%b
最初にcd
をディレクトリに入れる必要があります。そうしないと機能しません。
次のコマンドを試してください。
dir /s /b /a
これはすべてのファイルを提供します。必要に応じて、またはフォルダ名を追加する場合は、FIND
を介して実行できます。
Lsを試した場合、なぜcygwinをインストールしないのですか?あなたはcygwinでfindを使うことができます:
find -name "*"
Cygwinをインストールしてcygwinでfindを使用する場合は、Windowsにもfind.exeがあるため、フルパスを使用するか、cygwin binパスをsystem32の前に挿入して、cygwinでの検索が呼び出されることを確認してください。
これは古い質問ですが、とにかく何か追加したいと思いました。
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:の場合、通常は管理者として実行します。
私はディレクトリリストを操作したかったので、「ディレクトリを印刷」しました。そのための手順を見つけましたが、レジストリへの変更が含まれていました。これをいじくり回したくないし、リストを印刷したくもないので、レジストリを変更せずに目標を達成する方法を見つけました。ユーティリティディレクトリに保存する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"
sedはgnuwin32でダウンロードできます。これにより、現在のディレクトリが先頭に追加されます。
%cd%を実行しても機能しません..したがって、%cd:\=\\%
は、すべての\
を\\
に変換し、その結果、\
になります。
C:\WINDOWS>dir /b | sed "s/^/%cd:\=\\%\\/"
C:\WINDOWS\0.log
C:\WINDOWS\003109_.tmp
C:\WINDOWS\addins