ファイル名を一括で変更する方法 | PowerShellとコマンドプロンプト

同じフォルダ内にあるファイルの名前を一括で変更する方法はいくつかあり、以下はその一例です。

  • PowerShell
  • コマンドプロンプト
  • バッチスクリプト
  • Excel VBA

ここでは、PowerShellとコマンドプロンプトを使用した方法を紹介します。

ファイルの名前を変更したいディレクトリは、ドライブ割り当てをしている「F:¥sample」の例です。

目次

PowerShellとコマンドプロンプトについて

PowerShellとコマンドプロンプト(Command Prompt)は、Windows環境で使用される2つの異なるコマンドラインツールです。一般的に、新しい開発や管理タスクにおいてはPowerShellが推奨されます。ただし、従来のバッチスクリプトや単純なコマンド実行など、特定の用途ではコマンドプロンプトも有用です。

PowerShellはスクリプト言語として設計されており、豊富なコマンドレットやスクリプト機能を提供しています。高度な制御構造や関数、モジュールのサポートがあり、複雑なスクリプトを簡単に作成できます。

コマンドプロンプトは、古典的なバッチスクリプトやコマンドラインツールの実行に特化しています。スクリプト言語の機能が限定的で、繰り返し処理や条件分岐などの高度な制御構造が制約されています。

ファイル名の一括変更例と事前準備

まず、ファイル名を一括で変更する簡単な例と事前準備の説明です。

ファイル名変更の例

  • 変更前:sample1.xlsx
  • 変更後:sample_1.xlsx

変更後のファイル名に数字の前にアンダーバー「_]を入れる例です。

変更前

変更前

変更後

変更後

ファイル名変更の事前準備・フォルダ内のファイル名取得

フォルダ内にある変更前のファイル名は、以下の方法で取得すると簡単。

  • PowerShell
  • コマンドプロンプト
  • Excel VBA

PowerShellでファイル名変更する方法

エクセルを使用してPowerShellのコマンドを作成する方法です。

エクセルを使ってコマンド作成

説明
  • A列:コマンドレット→[Rename-Item]の最後に半角の空白を入れる
  • B列:変更前のファイル名
  • C列:半角の空白
  • D列:変更後のファイル名
  • E:A列からD列の文字結合
    赤枠内を使う

セルE2に入力している関数です。

=CONCAT(A2:D2)

実行

(1)PowerShellを起動し、変更前のファイルを保存しているフォルダへ移動します。

(2)エクセルE列のコマンドをコピーする。

(3)PowerShellに貼り付けます。

POWERSHELLの実行御

(4)フォルダ内を確認します。

コマンドプロンプトでファイル名変更する方法

フォルダ名の一括変更方法と同じです。

参考:フォルダ名を一括で変更する方法

エクセルを使ってコマンド作成

「rename」での例で説明します。

以下のようにエクセルでコマンドプロンプトへ貼り付けるデータを作成します。

エクセルで編集

PowerShellでの作成方法と異なります。

説明
  • A列:コマンド→[rename]の最後に半角の空白を入れる
  • B列:変更前のファイル名
  • C列:変更後のファイル名+ファイル名の前には半角スペースを入れます。

規則性のある変更の場合は、関数を使うと簡単です。セルC1に以下の関数を入力し、セルC3までコピーします。

=CONCAT(" ",LEFT(B1,6),"_",RIGHT(B1,6))

実行

(1)コマンドプロンプトを起動し、変更したいファイルを保存しているフォルダへ移動します。

(2)コマンドをコピーします。

コピー

(3)コマンドプロンプトにエクセルでコピーしたデータを貼り付けます。

コマンドプロンプト

(4)フォルダ内を確認します。

PowerShellとコマンドプロンプトでのファイル名変更エラー

ファイル名変更できない例
  • 変更しようとしているファイルを開いている
  • ファイル名に空白がある

上記のうち、「ファイル名に空白がある」についての補足です。次のような場合、これまで説明した方法では変更できません。

sample 1.xlsx

ファイル名変更の例

上記3ファイルをPowerShellで実行後の画像です。

POWERSHELLの実行ご・エラー

空白のあるファイルは、赤字のエラー説明が表示されます。

A positional parameter cannot be found that accepts argument・・・

ファイル名に空白がある場合は、「"」で囲むと実行できます。

はじめから変更前のファイル名すべてを「"」で囲っておけば実行可能です。

POWERSHELLのファイル名変更

変更前のファイル名に空白がある例で説明しましたが、変更後のファイル名に空白がある場合も同じくエラーになるので、ファイル名すべてを「"」で囲います。

または、ExcelVBAを使用してファイル名変更する方法も可能。

ファイル名に空白を含めるのは、今回のエラー例以外にも問題になることがあります。空白を含むファイル名は使わない方が無難です。

目次