たちまち。

即席で役に立つこと。

Windowsでサブディレクトリ配下のファイル名のみ(パスなし)を取得する

f:id:aposke:20210120180111j:plain

Windowsのdirコマンドで、サブディレクトリを含むファイル一覧を取得したい。

ただし、ファイルのフルパスはいらない。こちとらファイル名のみの一覧が欲しいのだ。

しかし、dirコマンドをざっと調べてみたものの、サブディレクトリを含めてファイル名のみを一括で出力するオプションはないようだ。

そこで、以下の手順で生成することとする。

手順1. dirコマンドでファイル一覧出力

dir /s /b /a-d フォルダ名 > filelist.txt

フルパス付きだが一旦これで出力

プチ解説

  • /s … サブディレクトリを含む
  • /b … ファイル名のみ表示
  • /a-d … aは属性指定。dはディレクトリ。手前にハイフンをつけることで除外。つまりディレクトリを除外している。

手順2. 正規表現でパス部分を削除

正規表現が使える任意のテキストエディタでファイルを開き、以下の条件で空文字に置換する。

エディタでの検索文字列

.*\\

プチ解説

  • . … 任意の1文字
  • * … 直前の文字がないか、1個以上連続する
  • \\ … \で終わる。2回続けているのはエスケープのため

なお、Excelでも可能。以下の検索条件で空文字に置換すればよい。

Excelでの検索文字列

*\

以上