フォルダ内の全てのファイルの拡張子の一覧を表示するバッチファイル例1/4

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

パート1では、PowerShell のバージョン情報の確認、ファイル構成の表示、フォルダ内の全ての拡張子を列挙するプログラム例とその実行結果について紹介します。

フォルダ内の全てのファイルの拡張子の一覧を表示するバッチファイル例1

※ 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 を開くことができます。

PowerShell tree コマンドの実行例

サンプルフォルダの構成を 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 キーを押すと、そのプログラムが実行されて、フォルダ内のファイルの全ての拡張子列挙されました。

フォルダ内の全てのファイルの拡張子の一覧を表示するバッチファイル例1
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!

記事一覧 → 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をコピーしました