Windowsのバッチファイルでファイルやフォルダを操作する際に、dir
コマンドは欠かせません。dir
コマンドを使えば、フォルダ内のファイル一覧を取得したり、特定の条件でファイルを検索したりできます。バッチ処理で自動化する場合にも、ファイルの存在確認やリスト出力などに活用できるため、知っておくと便利です。
本記事では、Windowsのバッチファイルでdir
コマンドを活用する方法について、基本的な使い方から便利なオプションまで詳しく解説します。
Windowsのバッチファイルでdirコマンドを使う方法
dir コマンドとは?
dir
コマンドは、Windowsのコマンドプロンプトで使われるディレクトリ(フォルダ)内のファイルやフォルダの一覧を表示するコマンドです。以下のような用途に利用されます。
- 指定したフォルダ内のファイル一覧を取得
- ファイルの詳細情報(サイズ、作成日時など)を表示
- 特定の拡張子を持つファイルのみを検索
- バッチファイルで自動処理を行う際の条件分岐に利用
dir
コマンドは単体でも便利ですが、オプションを組み合わせることで、より柔軟な操作が可能になります。
基本的なdir コマンドの使い方
1. 現在のディレクトリ内のファイル一覧を表示
dir
このコマンドを実行すると、現在のフォルダにあるファイルやフォルダの一覧が表示されます。
2. 特定のフォルダ内のファイルを一覧表示
dir C:\Users\Public\Documents
このように、パスを指定することで別のフォルダ内のファイルを取得できます。
3. 拡張子を指定してファイルを検索
特定の種類のファイルだけを表示したい場合は、ワイルドカードを使用します。
dir *.txt
このコマンドを実行すると、現在のフォルダ内の「.txt」ファイルだけが表示されます。
dir コマンドの主なオプション
1. /s – サブフォルダ内のファイルも表示
dir /s
このオプションをつけると、現在のフォルダだけでなく、そのサブフォルダ内のファイルもすべて表示されます。
2. /b – シンプルなファイル名のみ表示
dir /b
このオプションを使うと、ファイル名のみが一覧表示され、余計な情報(ファイルサイズや日付など)は省略されます。
3. /o:n – 名前順で並べ替え
dir /o:n
このオプションをつけると、ファイル名順(アルファベット順)で並べ替えて表示されます。
その他の並べ替えオプション:
/o:s
→ ファイルサイズ順(小さい順)/o:-s
→ ファイルサイズ順(大きい順)/o:d
→ 日付順(古い順)/o:-d
→ 日付順(新しい順)
4. /t – 日付の基準を変更
dir /t:c
/t
オプションを使うと、どの日付情報を基準に表示するかを指定できます。
/t:c
→ 作成日時/t:a
→ 最終アクセス日時/t:w
→ 最終更新日時
5. /a – 特定の属性を持つファイルのみ表示
dir /a:h
このオプションを使うと、特定の属性を持つファイルのみを表示できます。
/a:h
→ 隠しファイル(Hidden)/a:s
→ システムファイル(System)/a:r
→ 読み取り専用(Read-only)
バッチファイルでのdir コマンド活用例
1. フォルダ内のファイル一覧をテキストファイルに保存
dir /b > filelist.txt
このコマンドを実行すると、フォルダ内のファイル名が「filelist.txt」に保存されます。
2. 特定の拡張子のファイルをリスト化
dir /b *.jpg > imagelist.txt
「.jpg」ファイルのみを取得し、imagelist.txt
に出力します。
3. サブフォルダ内のすべてのファイルをリスト化
dir /s /b > allfiles.txt
サブフォルダを含めた全ファイルの一覧をテキストファイルに記録できます。
dir コマンドを使ったバッチ処理の応用
1. 指定したフォルダにファイルがあるか確認する
@echo off
if exist C:\Users\Public\Documents\sample.txt (
echo ファイルが見つかりました!
) else (
echo ファイルが存在しません。
)
このスクリプトは、指定したファイルが存在するかどうかを確認し、結果を表示します。
2. 指定した拡張子のファイル数をカウント
@echo off
dir /b /s *.txt | find /c /v ""
このコマンドを実行すると、現在のフォルダ内にある「.txt」ファイルの数が表示されます。
まとめ
dir
コマンドは、Windowsのバッチファイルで頻繁に使われる便利なコマンドです。基本的な使い方から、オプションを活用した応用的な使い方まで幅広く対応できます。特にバッチ処理で自動化を行う際には、ファイルのリスト化や条件分岐などに活用すると、作業を効率化できます。