web-dev-qa-db-ja.com

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

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

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

私がdirで取得できる最も近いものはdir /s /b、しかしそれは完全なパスをリストし、また拡張子を示します。

ええと、私は拡張機能と一緒に住むことができるかもしれませんが、私はパスを取り除く必要があります!

何か案は?

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

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

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

バッチファイルで使用するには、すべての%%%に変更します

29
afrazier

Powershellをロードする場合は、このコマンドで実行できます。

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

次のようなことを行うと、必要なものが得られます。

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

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

5
David Remy

マイクロソフト製で7に同梱されているため、サードパーティのソフトウェアかどうかはわかりませんが、Powershellはほとんどの問題を簡単に解決します。まだインストールしていない場合は、MicrosoftのサイトのXPで利用できます。

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}
3
OldWolf