DOS / Windowsでファイル名(のみ)を再帰的にリストするにはどうすればよいですか?[複製]


20

重複の可能性:
コマンドプロンプトで裸のファイル名を再帰的に取得する

ディレクトリ内のすべてのファイルを再帰的にリストし、ファイル名のみを表示します(拡張子およびフルパスなし)。Windows / DOSを使用しています。

最も近いものはでしたdirdir /s /b、フルパスと拡張子も表示されます。

まあ、おそらく拡張機能で生きることができますが、パスを取り除く必要があります!

何か案は?


1
Windowsのどのバージョンですか?
オールドウルフ

@OldWolf:XP。私は、サードパーティ製のソフトウェアを使用しない/
デヴィッド・B

回答:


28
cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni

リストをファイルに保存する必要がある場合>> C:\Path\To\list_file.txtは、forコマンドの最後に追加します。

拡張機能が必要になった場合は、に変更%~niします%~nxi

バッチファイルで使用するには、すべて%%%


6
あなたは%〜pnxiへのパスと名前と拡張子、変更%〜NIが必要な場合
ディープ

これは機能しますが、隠しファイルは表示されません。隠しファイルも見るにはどうすればよいですか?
ala

@ala:隠しファイルを表示したい場合は、コマンドに渡される適切なフラグのみを使用して、David Remyの答えのようなものを使用する必要がありますdir
アフレイジャー

7

PowerShellをロードする場合は、このコマンドで実行する必要があります。

get-childitem "d:\acc" -recurse|foreach {$_.Basename}

5

次のようなことをすることで、あなたが望むものが得られるはずです。

@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na

出力をファイルにパイプし、必要に応じてそこから使用します。


3

Microsoftであり、7が付属しているため、サードパーティのソフトウェアと見なすかどうかはわかりませんが、PowerShellはほとんどの問題を簡単に解決します。まだインストールしていない場合は、MicrosoftのサイトでXPに使用できます。

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.