Win:カレントディレクトリ配下の特定の拡張子のファイルをパス名で取得したい

プログラム

手順

コマンドプロンプトを起動し、取得したいディレクトリまでcdコマンドで移動する。

例として、カレントディレクトリ配下にある~.mp3ファイルをパス名も含めて全て取得したい場合は以下のコマンドを実行する。

for /r %f in (*.mp3) do (echo "%~dpnxf">>list.txt)

取得したファイル名は パス名+ファイル名 のフルパスで list.txt にテキストファイルとして保存される。

list.txtのイメージ

"D:\work\02ダークな二人.mp3"
"D:\work\11ワンダーキャッスル.mp3"
"D:\work\20ナッシング.mp3"
"D:\work\29ディスタンス.mp3"
"D:\work\chuan.mp3"
"D:\work\dragonquest.mp3"
"D:\work\dragonquest2.mp3"
"D:\work\h1.MP3"
"D:\work\h2.MP3"
"D:\work\maou_bgm_8bit01.mp3"
"D:\work\outfile.mp3"
"D:\work\powerdown07.mp3"
"D:\work\tenimyu02.mp3"
"D:\work\tenimyu11.mp3"
"D:\work\tenimyu20.mp3"
"D:\work\tenimyu29.mp3"
"D:\work\tonight.mp3"
"D:\work\totoro.mp3"
"D:\work\太陽と月.mp3"
"D:\work\ffmpeg\01 RIVER.mp3"
"D:\work\ffmpeg\03 FRIENDS.mp3"
"D:\work\ffmpeg\新しいフォルダー\02 異邦人.mp3"
"D:\work\ffmpeg\新しいフォルダー\tmp\01 RIVER.mp3"
"D:\work\mp3\1-01 ラムのラブソング.mp3"
"D:\work\mp3\1-02 宇宙は大ヘンだ!.mp3"
"D:\work\mp3\1-03 心細いな.mp3"
"D:\work\mp3\1-04 星空サイクリング.mp3"
"D:\work\mp3\1-05 I, I, YOU & 愛.mp3"
"D:\work\mp3\1-06 Dancing Star.mp3"
"D:\work\mp3\1-07 夢は Love me more.mp3"
"D:\work\mp3\1-08 パジャマ・じゃまだ!.mp3"
"D:\work\mp3\1-09 恋のメビウス.mp3"
"D:\work\mp3\1-10 Chance on Love.mp3"
"D:\work\mp3\1-11 Open Invitation.mp3"
"D:\work\mp3\1-12 ロック・ザ・プラネット.mp3"
"D:\work\mp3\1-13 エヴリディ.mp3"
"D:\work\mp3\1-14 殿方ごめん遊ばせ.mp3"
"D:\work\mp3\1-15 Good Luck ~ 永遠より愛をこめて.mp3"
"D:\work\mp3\2-01 愛はブーメラン.mp3"
"D:\work\mp3\2-02 Born To Be Free.mp3"
"D:\work\mp3\2-03 Remember My Love.mp3"
"D:\work\mp3\2-04 メランコリーの軌跡.mp3"
"D:\work\mp3\2-05 好き・嫌い.mp3"
"D:\work\mp3\2-06 BEGIN THE 綺麗.mp3"
"D:\work\mp3\2-07 Sweet Dream.mp3"
"D:\work\mp3\2-08 ロマンスが痛い.mp3"
"D:\work\mp3\2-09 ラムのバラード.mp3"
"D:\work\mp3\2-10 恋にダンス! ダンス! ダンス!.mp3"
"D:\work\mp3\2-11 ふしぎ・きれい.mp3"
"D:\work\mp3\2-12 ア・リ・ガ・ト!.mp3"
"D:\work\mp3\2-13 星のメモリー.mp3"
"D:\work\mp3\2-14 うる星やつら★キャラクター大事典.mp3"
"D:\work\mp3\2-15 うる星やつら★また逢えたっちゃ!.mp3"

パス名+ファイル名は、(ダブルクォーテーション)で括って保存される。
もし、が不要なら以下のコマンドに変更すればなしのファイル名で出力される。

for /r %f in (*.mp3) do (echo %~dpnxf>>list.txt)

list.txtの出力イメージ

D:\work\02ダークな二人.mp3
D:\work\11ワンダーキャッスル.mp3
D:\work\20ナッシング.mp3
D:\work\29ディスタンス.mp3
D:\work\chuan.mp3
D:\work\dragonquest.mp3
D:\work\dragonquest2.mp3
D:\work\h1.MP3
D:\work\h2.MP3
D:\work\maou_bgm_8bit01.mp3
D:\work\outfile.mp3
D:\work\powerdown07.mp3
D:\work\tenimyu02.mp3
:
:

注意点

コマンドに詳しい方なら分かると思うが、作成される list.txt追加書き込みされているため、同じディレクトリで何度もこのコマンドを実行してしまうと list.txt にどんどんファイル名が追加されてしまう。

同じディレクトリ上でやり直す場合は、一旦 list.txt削除してから実行して欲しい。

参考

今回コマンドプロンプトのfor文のオプションを利用している。
詳しく知りたい方は以下のサイトを参考にすると分かりやすい。

バッチでファイルパスやファイル名を取得する方法 – Rainbow Engine

コメント

タイトルとURLをコピーしました