PowerShell を使用してファイルとフォルダーの名前を変更する

Marion Paul Kenneth Mendoza 2023年6月21日
  1. PowerShell でのファイルとフォルダーのフィルター処理
  2. PowerShell でファイルの名前を変更する
PowerShell を使用してファイルとフォルダーの名前を変更する

ファイルとフォルダーの名前変更は、おそらく Windows オペレーティング システムの基本機能の 1つです。 ファイルを右クリックして名前の変更を選択すると、GUI を介してファイルとフォルダーの名前を変更できます。

複数のファイルの名前を変更する必要がある場合は、自動化によって対処する方が効率的です。 この記事では、ファイルとフォルダーのフィルター処理と、Windows PowerShell を使用してファイル名を変更し、ファイル拡張子を変更する方法について説明します。

PowerShell でのファイルとフォルダーのフィルター処理

Windows PowerShell の Get-ChildItem コマンドは、指定されたディレクトリまたは場所にあるオペレーティング システムの項目を取得します。 また、コマンドレットで指定する場所は、レジストリ、ファイル システム、または証明書ストアにすることができます。

この記事の例では、ファイルとフォルダーに焦点を当てます。

構文:

Get-ChildItem -Path C:\PS\Temp

上記のコマンドで、Get-ChildItem コマンドレットは、-Path パラメーターの指定された値からすべてのアイテムを取得します。 Get-ChildItem コマンドレットを実行すると、PowerShell コンソールにファイル、ディレクトリが ModeLastWriteTimeLength (ファイル サイズ)、および Name プロパティと共に表示されます。

出力:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----l        18/01/2022   8:52 pm                Microsoft
d----l        20/12/2021   3:36 pm                Cisco
-a---l        30/12/2021   3:24 pm          (151) backup_phrase.txt
-a---l        17/06/2021   3:23 am       (410049) CEF17501168.pdf
-a---l        16/05/2021   3:32 am          (677) default.txt
-a---l        21/08/2020   9:06 am         (2240) test.csv
-a---l        26/06/2021   8:25 am        (63399) banner.jpg
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

-Filter パラメーターを使用すると、検索結果を 1つの式だけで絞り込むことができます。 エイリアス gciGet-ChildItem コマンドの代わりに使用して、よりシームレスな書き込みエクスペリエンスを実現することもできます。

コード例:

gci -Filter C:\PS\Temp\* -Filter *.xlsx

出力:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

複数の条件を受け入れる -Include パラメーターを使用できます。 したがって、-Include パラメータは -Filter パラメータよりも優れていると言えます。

ただし、-Include パラメーターでは、式に -Path パラメーターが存在する必要があります。

コード例:

gci -Path C:\PS\Temp\* -File -Include CEF*.pdf, *.xlsx, *.txt

出力:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---l        17/06/2021   3:23 am       (410049) CEF17501168.pdf
-a---l        16/05/2021   3:32 am          (677) default.txt
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

-Includeスイッチ パラメータを使用する場合、パスの末尾にワイルドカード アスタリスク (*) を含める必要があります。 このワイルドカードは、-Include パラメーターで定義された特定の拡張子を持つすべての子パス項目を照会していることを示します。

PowerShell でファイルの名前を変更する

Windows PowerShell の名前変更コマンド Rename-Item は、ファイルやフォルダーなどのオペレーティング システム アイテムのファイル名を変更するために機能します。 たとえば、TestFile.txt の名前を RenamedFile.txt に変更します。

コード例:

Rename-Item -Path '.\TestFile.txt' -NewName 'RenamedFile.txt'
gci -Filter 'RenamedFile.txt'

ここで、gci コマンドを開始して特定のアイテムをフィルタリングすると、ファイルの名前が変更されたことを確認できます。

出力:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/10/2021  11:38 PM           2982 RenamedFile.txt

Rename-Item コマンドレットは、特定のファイルのファイル名を変更するだけでなく、ファイルの形式を変更することもできます。 たとえば、以下のコード スニペットは、Get-ChildItem コマンドと Rename-Item コマンドの組み合わせを使用して、すべてのファイルを .txt 形式でフィルタリングし、それらのファイル形式を .csv に変更します。

コード例:

gci *.txt | Rename-Item -NewName { $_.Name -replace '.txt', '.csv' }
gci -Filter *.csv

出力:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/10/2021  11:38 PM           2982 RenamedFile.csv
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn