【PowerShell】指定フォルダ内のファイル名を一括リネームするスクリプト
作成日:2025-11-07
更新日:2025-11-07

指定フォルダ内にあるファイルのファイル名を一括リネーム

たとえば、共通のプレフィックスをつける場合
(= 文頭に同じ文字列を追加する)
# 目的: カレントディレクトリ内の全ファイル名に統一プレフィックスを一括で追加する
# (ただし *.ps1 ファイルは除外)
# プレフィックスとして追加したい文字列を変数に格納
$Prefix = "2024_"
Write-Host "✅ ファイル名変更処理を開始します(*.ps1ファイルは除外)"
# 現在のディレクトリにあるファイルの一覧を取得、拡張子が「.ps1」でないものに限定
Get-ChildItem -Path . -File | Where-Object { $_.Extension -ne ".ps1" } | ForEach-Object {
# フルパス(絶対パス)を変数に格納
$CurrentFullName = $_.FullName
# 新しいファイル名(プレフィックス + 元のファイル名)を生成
$NewName = "$Prefix$($_.Name)"
# Rename-Item 実行
Rename-Item -Path $CurrentFullName -NewName $NewName
# 変更したファイル名を表示
Write-Host "👉 $NewName"
}
Write-Host "✅ 全ての対象ファイルへのプレフィックス付加が完了しました"
何をやってる?
.ps1(スクリプト自身)だけは除外し、誤って再帰的にリネームされることを防いでいる。
- プレフィックスの設定
$Prefix = "2024_"ここで付与したい文字列を指定する。
例:2024_を設定すると、report.xlsx→2024_report.xlsxに変換される。 - 対象ファイルの取得
Get-ChildItem -Path . -File | Where-Object { $_.Extension -ne ".ps1" }カレントディレクトリ直下のファイルを取得し、拡張子.ps1を除外する。-Fileパラメータを使って、ディレクトリを除外している点もポイント。 - ファイル名の変更
Rename-Item -Path $CurrentFullName -NewName $NewNameRename-Itemコマンドでリネームを実行。
改良ポイント
- Dry Run(確認モード)
実行前に-WhatIfを付与すれば、実際には変更せずに「何が起こるか」を確認できる。Rename-Item -Path $CurrentFullName -NewName $NewName -WhatIf
- 重複防止
同じプレフィックスを複数回実行しないよう、次のようにフィルタ条件を追加できる。Where-Object { $_.Extension -ne ".ps1" -and $_.Name -notlike "$Prefix*" }
- 拡張子の限定
もし特定のファイルタイプのみ対象にしたい場合は、-Includeを使う。Get-ChildItem -Path . -Include *.txt,*.csv -File
注意点
- 実行ディレクトリを明確にする
コマンド実行前にSet-Locationで対象フォルダを指定すること。
誤って他のディレクトリで実行すると、大量リネームのリスクがある。 - ファイル名の重複に注意
同じ名前のファイルが既に存在する場合、Rename-Itemはエラーを返す。
必要に応じて-ErrorAction SilentlyContinueを付与する。 - ロールバック不可
一度リネームを実行すると元に戻す機能はないため、バックアップを取っておくことを推奨。
2025-11-07
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

[PowerShell]Auto DiffHTML Output 【PowerShell】WinMergeでファイルを自動比較&HTMLレポート出力する -

cd¥.. 【PowerShell】cd|場所の移動 -

[PowerShell]compare two filesCompare-Object 1 2 【PowerShell】Compare-Object|2つのファイルの差分を出す -

gl get-location 【PowerShell】get-location|現在地を確認 -

copy-item$src -destination$dst -recurse 【PowerShell】copy-item|フォルダ•ファイルをコピーする -

mimove-item(rename) 【PowerShell】move-item|リネーム