もくじ
📝 はじめに
PowerShellでファイル整理をしていると、
「ファイル名を変更したい」
「フォルダ名を分かりやすく直したい」
「規則に沿って一括で名前を変更したい」
といった場面はよくあります。
そんなときに使うのが
Rename-Item です。
ファイルやフォルダの名前だけを安全に変更できる、
基本かつ実務で出番の多いコマンドです。
- ファイル名・フォルダ名を変更したい
- 日付やルール付きの名前に直したい
- スクリプトで整理処理を自動化したい
✅ このコマンドでできること(要点)
- ファイル名・フォルダ名を変更できる
- 場所は変えずに「名前だけ」を変更できる
- パイプラインと組み合わせて一括変更できる
- 安全に整理・リネーム処理が書ける
✅ Rename-Item でできること
Rename-Item は、
指定したファイルやフォルダの名前を変更するコマンドです。
移動やコピーは行われず、
同じ場所で名前だけが変更されます。
考え方としては「その場で表札を付け替える」と覚えると分かりやすいでしょう。
🧩 基本構文
Rename-Item 変更対象 -NewName 新しい名前
-NewName には
ファイル名またはフォルダ名のみを指定します(パスは不要です)。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイル名を変更する
Rename-Item C:\Work\sample.txt -NewName sample_old.txt
同じフォルダ内で
sample.txt が
sample_old.txt に変更されます。
🔹 フォルダ名を変更する
Rename-Item C:\Work\Data -NewName Data_Backup
フォルダ名だけが変更され、
中身はそのままです。
🛠 よく使われる指定例
🔹 拡張子を変更する
Rename-Item C:\Work\sample.log -NewName sample.txt
拡張子を含めて自由に変更できます。
🔹 変数を使って名前を付ける
$date = Get-Date -Format "yyyyMMdd"
Rename-Item C:\Logs\app.log -NewName "app_$date.log"
日付付きのファイル名に変更する例です。
💼 実務でよく使う使用例(応用)
🔹 複数ファイルを一括で名前変更
Get-ChildItem C:\Logs -File |
ForEach-Object {
Rename-Item $_ -NewName ("old_" + $_.Name)
}
🔹 拡張子だけをまとめて変更
Get-ChildItem C:\Work -Filter *.txt |
ForEach-Object {
Rename-Item $_ -NewName ($_.BaseName + ".md")
}
- Get-ChildItem で対象取得
- ForEach-Object で一括処理
- BaseName / Extension を活用
🧩 よくある勘違い・つまずきポイント
- パス全体を -NewName に指定するとエラーになる
- 同名ファイルがあると失敗する
- 拡張子を含めて指定し忘れる
- フォルダ名変更でも中身は消えない
- Move-Item と混同しやすい
🔄 cmdとの違いについて
cmd では ren を使いますが、
PowerShell の Rename-Item は
オブジェクトとしてファイル情報を扱える点が大きな違いです。
一括処理や条件付き処理が書きやすくなります。
⚠ エラー・うまく動かないときの確認ポイント
- 変更対象のパスが正しいか
- 同名ファイル・フォルダが存在していないか
- -NewName にパスを含めていないか
- 書き込み権限があるか
🧠 注意点
Rename-Item は安全な操作ですが、
一括処理では意図しない名前変更が起きやすくなります。
まずは少数のファイルでテストしてから実行すると安心です。
📌 まとめ
- Rename-Item は名前変更専用のコマンド
- 場所は変わらず、名前だけが変わる
- 一括処理と組み合わせると強力
- Move-Item との違いを意識して使う
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイル名を変更したい
- フォルダ名を変更したい
- 一括でリネームしたい
- 規則的な名前に変更したい
- エラーや実行できない原因を調べたい
- ファイル整理を自動化したい
- 安全に名前変更したい
