隠しフォルダを含めてファイルを全て列挙する dir コマンドのオプション指定

Windows に標準搭載されているコマンドプロンプトアプリで呼び出せる dir コマンドで、隠しフォルダの情報も表示するオプションの使用例を紹介します。
PowerShell の dir コマンドで同様のオプションを指定するとエラーになる理由や、エイリアスの確認のコマンドについても紹介します。

dir で隠しフォルダを表示するオプション

dir コマンドで隠しフォルダの内容も表示するには以下のオプションを使用します。

dir /s /b /a

以下は、各オプションの説明です。

/s オプションで、サブディレクトリも対象に追加

/s オプションは、サブディレクトリ(現在のフォルダ内にあるすべてのファイル)も含めて項目のパスを表示します。

/s

指定したディレクトリおよびすべてのサブディレクトリ内で、指定したファイル名が出現するたびに一覧表示されます。

ディレクトリの内容を一覧表示するコマンド “dir” | Microsoft Learn

/b オプションでパスだけを表示する形式を指定

追加情報を表示せず、ディレクトリとファイルのパスだけシンプルに表示します。

/b

ディレクトリとファイルのベア リストを、追加情報なしで表示します。 /b パラメーターは /w をオーバーライドします。

ディレクトリの内容を一覧表示するコマンド “dir” | Microsoft Learn

/a オプションで隠しフォルダを表示

/a オプションは、さらに属性を表す文字を組み合わせて使用できますが、 /a だけの場合は、非表示ファイルやシステムファイルなどの全てのファイルの名前が表示できます。

/a[[:]]

指定した属性を持つディレクトリとファイルの名前のみを表示します。 このパラメーターを使用しない場合、このコマンドは、非表示ファイルとシステム ファイルを除くすべてのファイルの名前を表示します。 属性を指定せずにこのパラメーターを使用すると、非表示ファイルやシステム ファイルを含むすべてのファイルの名前が表示されます。 使用可能な 属性値の 一覧は次のとおりです

ディレクトリの内容を一覧表示するコマンド “dir” | Microsoft Learn

dir で隠しフォルダを含めてファイルパスを列挙

実際に前章で紹介したコマンドを実行してみましょう。

コマンドプロンプトアプリを起動して、ファイル・ディレクトリのパスを列挙したいフォルダに移動します。
※ Windows 10 の場合は、エクスプローラフォルダを開いて、アドレスバーに cmd⏎ と入力すると簡単です。

dir コマンドによる隠しフォルダの内容の表示1
dir /s /b /a

上記のコマンドを実行すると、隠しフォルダである .git フォルダ内の項目のパス表示されました。

Microsoft Windows [Version 10.0.19045.5965]
(c) Microsoft Corporation. All rights reserved.

G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2>dir /s /b /a
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\123.csv
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\hello, world.txt
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\Image
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\moon.png
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\readme.md
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\こんにちは世界.txt
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\config
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\description
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\HEAD
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\info
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\objects
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\refs
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\applypatch-msg.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\commit-msg.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\fsmonitor-watchman.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\post-update.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-applypatch.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-commit.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-merge-commit.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-push.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-rebase.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\pre-receive.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\prepare-commit-msg.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\push-to-checkout.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\sendemail-validate.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\hooks\update.sample
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\info\exclude
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\objects\info
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\objects\pack
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\refs\heads
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\.git\refs\tags
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\Image\clowd.png
G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2\Image\sun.png

PowerShell の dir コマンドは別物

PowerShell でも dir コマンドは実行できます

PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> dir


    ディレクトリ: G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2025/06/30     15:00                Image
-a----        2025/06/30     15:01             15 123.csv
-a----        2025/06/30     15:03             35 hello, world.txt
-a----        2025/06/30     14:59           1409 moon.png
-a----        2025/06/30     14:57            211 readme.md
-a----        2025/06/30     15:03             51 こんにちは世界.txt

しかし、先ほどのオプションを指定するとエラーになります。

PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> dir /s /b /a
Get-ChildItem : 引数 '/a' を受け入れる位置指定パラメーターが見つかりません。
発生場所 行:1 文字:1
+ dir /s /b /a
+ ~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ChildItem]、ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

これは PowerShell の dir コマンドは Get-ChildItem コマンドレットのエイリアスになっていて、コマンドプロンプトの dir コマンドとは実体が異なるからです。

指定された1つまたは複数の場所にある項目と子項目を取得します。

Get-ChildItem (Microsoft.PowerShell.Management) – PowerShell | Microsoft Learn

Get-ChildItem コマンドレットには /a オプションなどに対応できないためエラーになります。

CommandType Name
———– —-
Alias dir -> Get-ChildItem
Alias gci -> Get-ChildItem
Alias ls -> Get-ChildItem

エイリアスの使用 – PowerShell | Microsoft Learn

エイリアスについては、Get-Alias コマンドレットで確認できます。

Get-Alias コマンドレットは、現在のセッションのエイリアスを取得します。

Get-Alias (Microsoft.PowerShell.Utility) – PowerShell | Microsoft Learn
Get-Alias -Definition Get-ChildItem

上記のコマンドレットを使用することで Get-ChildItem コマンドレットのエイリアスの一覧確認でき、dir もその中のひとつであることがわかります。

PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> Get-Alias -Definition Get-ChildItem

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

tree コマンドでは 隠しフォルダは表示されません

tree コマンドは、グラフィカルにディレクトリ構造を表示できます。
※ /f オプションでファイル項目も表示できます。

ドライブ内のパスまたはディスクのディレクトリ構造をグラフィカルに表示します。

木 | Microsoft Learn

しかし、tree コマンドでは .git 隠しフォルダは表示されません

dir コマンドによる隠しフォルダの内容の表示2
新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder2> tree /f
フォルダー パスの一覧:  ボリューム ボリューム
ボリューム シリアル番号は 9691-AE5E です
G:.
│  123.csv
│  hello, world.txt
│  moon.png
│  readme.md
│  こんにちは世界.txt
│
└─Image
        clowd.png
        sun.png

tree コマンドは隠しフォルダを表示するオプションがない

tree コマンドには、 dir の /a オプションに対応する隠しフォルダを表示するオプションが、以下の tree コマンド全オプションの中にないため、隠しフォルダの項目は表示できません

<drive>:ディレクトリ構造を表示するディスクを含むドライブを指定します。
<path>ディレクトリ構造を表示するディレクトリを指定します。
/f各ディレクトリ内のファイルの名前を表示します。
/あるグラフィック文字の代わりにテキスト文字を使用して、サブディレクトリをリンクする行を表示するように指定します。
/?コマンド プロンプトにヘルプを表示します。
木 | Microsoft Learn

まとめ

今回は、Windows に標準搭載されているコマンドプロンプトアプリで呼び出せる dir コマンドで、隠しフォルダの情報も表示するオプションの使用例を紹介しました。
PowerShell の dir コマンドで同様のオプションを指定するとエラーになる理由や、エイリアスの確認のコマンドについても紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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