【完全版】Windowsコマンドプロンプトでフォルダのみを表示する方法|dirコマンドの活用術

Windows

コマンドプロンプトでファイル一覧を表示するとき、こんな経験はありませんか?

「ファイルとフォルダが混在して見づらい…」
「フォルダだけをすっきり表示したい」
「バッチファイルでフォルダを処理したいけど、どうやって取得するの?」

この記事では、Windowsコマンドプロンプトでフォルダ(ディレクトリ)のみを表示する様々な方法を、実例を交えて詳しく解説します。

基本的な使い方から応用テクニックまで、日常のファイル管理や自動化に役立つ情報をお届けします。

スポンサーリンク

dirコマンドの基本

dirコマンドとは

dirコマンドは、Windowsのコマンドプロンプトでファイルやフォルダの一覧を表示する基本コマンドです。

dir

このままだと、以下のような出力になります:

 C:\Users\Example のディレクトリ

2024/05/22  14:30    <DIR>          Documents
2024/05/22  14:30    <DIR>          Downloads
2024/05/22  14:30    <DIR>          Pictures
2024/05/22  14:30             1,024 example.txt
2024/05/22  14:30            10,240 report.docx
               2 個のファイル              11,264 バイト
               3 個のディレクトリ  15,234,567,890 バイト使用可能

ファイルとフォルダが混在しているため、フォルダだけを確認したい場合は見づらくなります。

フォルダのみを表示する基本コマンド

最も基本的な方法

フォルダのみを表示するには、以下のコマンドを使用します:

dir /ad

オプションの説明:

  • /a : 属性による絞り込み
  • d : ディレクトリ(フォルダ)のみ

よりシンプルな表示にする

詳細な情報を省略して、フォルダ名だけを表示したい場合:

dir /ad /b

オプションの説明:

  • /b : ベーシック出力(ファイル名のみ表示)

実行例:

C:\Users\Example> dir /ad /b
Documents
Downloads
Pictures

様々な表示オプション

完全なパスを表示

フォルダの完全なパスを表示したい場合:

dir /ad /b /s

オプションの説明:

  • /s : サブディレクトリも含めて再帰的に表示

実行例:

C:\Users\Example\Documents
C:\Users\Example\Documents\Projects
C:\Users\Example\Documents\Projects\Project1
C:\Users\Example\Downloads
C:\Users\Example\Pictures

詳細情報付きでフォルダのみ表示

日付やサイズ情報も確認したい場合:

dir /ad

実行例:

2024/05/22  14:30    <DIR>          Documents
2024/05/22  14:30    <DIR>          Downloads
2024/05/22  14:30    <DIR>          Pictures

隠しフォルダも含めて表示

隠しフォルダも表示したい場合:

dir /ad /ah /b

または、すべての属性を表示:

dir /a:d /b

オプションの説明:

  • /ah : 隠し属性のファイル・フォルダも表示
  • /a:d : /adと同じ意味(ディレクトリのみ)

ワイルドカードを使用した絞り込み

特定の名前パターンのフォルダのみ表示

特定の条件に合うフォルダだけを表示できます:

dir /ad /b "Project*"

実行例:(”Project”で始まるフォルダのみ)

Project1
Project2
ProjectBackup

特定の文字を含むフォルダのみ表示

dir /ad /b "*test*"

実行例:(”test”を含むフォルダのみ)

test_data
unittest
integration_test

forコマンドを使用した高度な処理

フォルダ名を1つずつ処理

バッチファイルでフォルダを1つずつ処理したい場合:

for /d %%i in (*) do echo %%i

コマンドプロンプトで直接実行する場合:

for /d %i in (*) do echo %i

実行例:

Documents
Downloads
Pictures

フォルダに対して特定の処理を実行

各フォルダに対して何らかの処理を実行する例:

for /d %%i in (*) do (
    echo Processing folder: %%i
    dir "%%i" /b | find /c /v ""
)

この例では、各フォルダ内のファイル数をカウントしています。

findコマンドとの組み合わせ

特定の文字列を含むフォルダ名を検索

dir /ad /b | find "Project"

実行例:(”Project”を含むフォルダ名のみ)

Project1
Project2
ProjectBackup

大文字小文字を区別しない検索

dir /ad /b | find /i "project"

オプションの説明:

  • /i : 大文字小文字を区別しない

PowerShellを使用した方法

基本的なフォルダ表示

PowerShellでは、より柔軟な操作が可能です:

Get-ChildItem -Directory

短縮形:

ls -Directory

または:

gci -Directory

フォルダ名のみを表示

Get-ChildItem -Directory | Select-Object -ExpandProperty Name

短縮形:

ls -Directory | select -ExpandProperty Name

再帰的にフォルダを表示

Get-ChildItem -Directory -Recurse

特定の条件でフィルタリング

# 名前で絞り込み
Get-ChildItem -Directory | Where-Object { $_.Name -like "Project*" }

# 作成日で絞り込み
Get-ChildItem -Directory | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-30) }

実践的な使用例

バックアップフォルダのチェック

特定の日付以降に作成されたフォルダを確認:

dir /ad /b | find "2024"

プロジェクトフォルダの一覧

開発プロジェクトのフォルダ一覧を取得:

dir /ad /b "C:\Projects" | find /v "Archive"

バッチファイルでのフォルダ処理

各フォルダに対して処理を実行するバッチファイルの例:

@echo off
echo === Folder Processing ===
for /d %%i in (*) do (
    echo Processing: %%i
    if exist "%%i\*.txt" (
        echo   - Contains text files
    ) else (
        echo   - No text files found
    )
)
echo === Processing Complete ===

ログフォルダの整理

古いログフォルダを特定する例:

dir /ad /b "C:\Logs" | find "2023"

エラーと対処法

「ファイルが見つかりません」エラー

dir /ad /b "存在しないフォルダ"

→ パスが正しいか確認してください。

アクセス権限エラー

dir /ad /b "C:\System Volume Information"

→ 管理者権限でコマンドプロンプトを起動してください。

文字化け

→ コマンドプロンプトの文字コードを確認し、必要に応じてchcp 65001(UTF-8)を実行してください。

さらなる活用方法

ファイルサイズによる絞り込み

PowerShellを使用して、特定のサイズ以上のフォルダを表示:

Get-ChildItem -Directory | ForEach-Object {
    $size = (Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum).Sum
    if ($size -gt 100MB) {
        Write-Output "$($_.Name): $([math]::Round($size/1MB,2)) MB"
    }
}

日付による絞り込み

最近作成されたフォルダのみを表示:

forfiles /m *.* /p . /s /c "cmd /c if @isdir==TRUE echo @path" /d +0

階層の深さを指定

PowerShellで特定の深さまでのフォルダのみ表示:

Get-ChildItem -Directory -Depth 2

おすすめの使い分け

場面別おすすめコマンド

目的おすすめコマンド理由
基本的なフォルダ確認dir /ad /bシンプルで見やすい
全階層のフォルダ確認dir /ad /b /sパスが分かりやすい
バッチ処理での利用for /d %i in (*) do ...柔軟な処理が可能
高度なフィルタリングPowerShellのコマンド複雑な条件指定が可能
特定名前のフォルダ検索`dir /ad /bfind “検索文字”`

トラブルシューティング

パフォーマンスの問題

大量のフォルダがある場合の対処法:

  1. 特定のドライブやフォルダに限定する
  2. /sオプションは必要な場合のみ使用する
  3. PowerShellの-Depthパラメータで階層を制限する

例:

Get-ChildItem -Directory -Depth 1 -ErrorAction SilentlyContinue

権限の問題

アクセス権限エラーの対処法:

  1. 管理者権限でコマンドプロンプトを起動
  2. icaclsコマンドで権限を確認
  3. エラーを無視して処理を続行:2>nulを追加

例:

dir /ad /b /s 2>nul

まとめ

Windowsコマンドプロンプトでフォルダのみを表示する方法は、用途に応じて様々な選択肢があります。

基本的な方法:

  • dir /ad /b – フォルダ名のみシンプル表示
  • dir /ad /b /s – 全階層のフォルダを表示
  • dir /ad – 詳細情報付きでフォルダ表示

応用的な方法:

  • for /dコマンドでバッチ処理
  • findコマンドで絞り込み
  • PowerShellで高度なフィルタリング

使い分けの例:

  • 単純な確認dir /ad /b
  • バッチ処理for /dループ
  • 複雑な条件 → PowerShellのコマンドレット
  • 検索・絞り込みfindコマンドとの組み合わせ

これらのコマンドを使いこなすことで、ファイル管理の効率が大幅に向上し、自動化スクリプトの作成も容易になります。

まずは基本的なdir /ad /bから始めて、必要に応じて応用的な方法を取り入れてみてください。

コメント

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