Windows に標準搭載されている、マイクロソフトが開発した .NET フレームワークが利用できるオブジェクト指向のコマンドラインインタプリタ (CLI) PowerShell で、フォルダ内の全ての拡張子を列挙するプログラム例とその実行結果について紹介します。
パート1では、PowerShell のバージョン情報の確認、ファイル構成の表示、フォルダ内の全ての拡張子を列挙するプログラム例とその実行結果について紹介します。

※ Windows PowerShell 5.1.19041.5965 を使用します。
※プログラムは自己責任でご利用ください。
PowerShell とは
PowerShell は .NET Core を基盤としたオブジェクト指向のシェルおよびスクリプト言語です。
PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェイス (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Framework (Windows PowerShell 5系以前) あるいは.NET Core (PowerShell Core 6系以降) を基盤としている。
PowerShell – Wikipedia
PowerShell は複数のプラットフォームで使用できます。
PowerShell は、コマンドライン シェル、スクリプト言語、および構成管理フレームワークで構成されるクロスプラットフォーム タスク自動化ソリューションです。 PowerShell は、Windows、Linux、macOS で実行されます。
PowerShell とは – PowerShell | Microsoft Learn
.NET オブジェクトを利用できるので、テキストの解析などをする手間が省けるメリットがあります。
スクリプト言語として、PowerShell はシステムの管理を自動化するために一般的に使用されます。 また、多くの場合、CI/CD 環境でソリューションをビルド、テスト、デプロイするためにも使用されます。 PowerShell は、.NET 共通言語ランタイム (CLR) 上に構築されています。 すべての入力と出力は .NET オブジェクトです。 テキスト出力を解析して出力から情報を抽出する必要はありません。 PowerShell スクリプト言語には、次の機能が含まれています。
PowerShell とは – PowerShell | Microsoft Learn
バージョンの確認
バージョンの情報は「about_PowerShell_Editions – PowerShell | Microsoft Learn」に書かれている PSVersionTable 変数に格納されています。
PowerShell のバージョン (PSVersion) は 5.1.19041.5965 でした。
PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.5965
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.5965
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
拡張子を抽出するフォルダの例
PowerShell を起動して、拡張子を抽出するサンプルフォルダを作業ディレクトリにします。
Windows 10 では、エクスプローラのアドレスバーに powershell⏎ と入力すると、そのフォルダを作業ディレクトリにして Windows PowerShell を開くことができます。

サンプルフォルダの構成を tree /f コマンドで表示します。
※ /f をつけないとフォルダ名までしか表示されません。
PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> tree /f
フォルダー パスの一覧: ボリューム ボリューム
ボリューム シリアル番号は 9691-AE5E です
G:.
│ 123.csv
│ hello, world.txt
│ moon.png
│ readme.md
│ こんにちは世界.txt
│
└─Image
clowd.png
sun.png
拡張子を表示するプログラム例
以下は、 | (パイプ) でつながったプログラムです。
現在のディレクトリ(フォルダ)内のファイルの拡張子を全て列挙します。
Get-ChildItem -Recurse -File |
Where-Object { $_.Extension -ne "" } |
Select-Object -ExpandProperty Extension |
ForEach-Object { $_.TrimStart('.') } |
Sort-Object -Unique
※このプログラムの詳細については、次回の記事で紹介します。
実行手順と結果
先ほどと同様に、PowerShell を起動して、拡張子を列挙させたいフォルダをカレントディレクトリにします。
※ Windows 10 では、エクスプローラのアドレスバーに powershell⏎ で、現在のフォルダをカレントディレクトリにした状態で起動できます。
前の章に書いてあるプログラムをコピーして、 PowerShell ウィンドウで Ctrl + V で貼り付けて Enter キーを押すと、そのプログラムが実行されて、フォルダ内のファイルの全ての拡張子が列挙されました。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6
PS G:\Dev\PowerShell\Enumerate-Extensions\TestFolder1> Get-ChildItem -Recurse -File -Force |
>> Where-Object {
>> $_.FullName -notmatch '\\\.git\\' -and
>> $_.Extension -ne ''
>> } |
>> Select-Object -ExpandProperty Extension |
>> ForEach-Object { $_.TrimStart('.') } |
>> Sort-Object -Unique
csv
md
png
txt
今回はここまで
次回は、今回実行した拡張子を列挙する PowerShell のプログラムの解説を行います。
参照サイト Thank You!
- PowerShell とは – PowerShell | Microsoft Learn
- Get-ChildItem (Microsoft.PowerShell.Management) – PowerShell | Microsoft Learn
- about_Automatic_Variables – PowerShell | Microsoft Learn
- Where-Object (Microsoft.PowerShell.Core) – PowerShell | Microsoft Learn
- Select-Object (Microsoft.PowerShell.Utility) – PowerShell | Microsoft Learn
- about_Pipelines – PowerShell | Microsoft Learn
- PowerShell – Wikipedia
- Git
記事一覧 → Compota-Soft-Press
コメント