Amazonでギフトを贈ろう!

windowsでファイルリストを取得するならdirコマンドが便利!階層指定も出来るよ。

ども。あいしんくいっと(@ithinkitnet)です。

もし、Windowsで「特定のフォルダ内にあるファイル名のリストを作成してほしい!」と依頼されたらどうしますか?

例えば、以下のようなフォルダでファイル名をリストアップするのにも結構な時間がかかるはず・・・。
1個、1個手打ちするなんてあり得ないですし、かと言ってF2キー押して1個、1個コピーしていくのも相当な時間がかかります・・・。
d1e9e338-aa10-4aa5-9754-9eea424f19a1
1個や2個、10個くらいまでならまだしも、数100個あるようなファイルリストを手動で作成しようと思ったら、それこそ至難のワザです。
(まぁ、時間にゆとりがあるならOKだけどw)

そんなときに役立つのが、今回紹介する「dir」コマンドです。

dirコマンド

dirコマンドの使い方です。
(コマンドプロンプトのHELPから抜粋)

dir /?
ディレクトリ中のファイルとサブディレクトリを一覧表示します。
DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]
[ドライブ:][パス][ファイル名]
一覧表示するドライブ、ディレクトリ、またはファイルを指定します。

コマンドオプションはたくさんありますが、覚えておくと便利はのは「/b」と「/s」位でしょうか。

ファイル名のみ取得

ファイル名のみを取得したいなら「/b」オプションをつけて実行します。
では、冒頭に挙げたファイルリストを取得してみましょう。


C:\Users\Administrator>dir /b C:\Windows
ADFS
AppCompat
apppatch
AppReadiness
assembly
bfsvc.exe
Boot
Branding
CbsTemp
~略~

簡単にファイル名のみが取得出来ました。

ファイルのフルパスを取得

ファイルリスト取得に際し、ファイルのフルパスを取得したい時もそれなりにあると思います。
そんなときは「/b」と「/s」オプションを同時に指定します。

では、冒頭に挙げたファイルリストを取得してみましょう。


C:\Users\Administrator>dir /s /b C:\Windows
~略~
C:\Windows\ADFS\lv
C:\Windows\ADFS\Microsoft.IdentityServer.Deployment.Core.dll
C:\Windows\ADFS\nl
C:\Windows\ADFS\no
~略~

おや?
C:\Windows以下のフォルダパスまで取得してしまいました。
dirコマンドは再帰的に処理するようになっているので、C:\Windows以下のフォルダのさらに下のフォルダパスまで取得してしまいます。
C:\Windows以下のフォルダ直下のものだけをフルパスでリスト取得するにはどうすれば良いのでしょうか?

C:\Windows以下だけ取得したい。そんなときは・・・

そんなときは以下のようにすると良いです。


C:\Users\Administrator>dir /s /b C:\Windows | findstr /r "^[^\\]*\\*[^\\]*\\*[^\
\]*$"
C:\Windows\ADFS
C:\Windows\AppCompat
C:\Windows\apppatch
C:\Windows\AppReadiness
C:\Windows\assembly
C:\Windows\bfsvc.exe
C:\Windows\Boot
C:\Windows\Branding
C:\Windows\CbsTemp
~略~

findstrをパイプでつないで使用します。
[^\\]*\\の数を調節することで階層を指定することが出来ます。

参考  Windowsで、階層指定でフォルダ構造を取得出来る方法はありませんでしょうか。

どうですか。
こういった類のコマンドを知っておくだけでも業務効率は格段にアップします。

Windowsで特定フォルダのファイルリストを取得する際は「dir」コマンドを利用する。

覚えておいてください。

以上、あいしんくいっとでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)