PowerShell: ファイル名・フォルダ名を変更(リネーム)

PowerShellでファイル名やフォルダ名を変更する場合、 Rename-Itemコマンドレットを使います。 Rename-Itemは指定したパスのファイルやフォルダ、 レジストリキーなどのアイテムを新しい名前にリネームします。

ファイル名を変更

ファイル名を変更するには 次のようファイルパスと新しいファイル名を記述します。

書式
Rename-Item ファイルパス 新しいファイル名

「D\temp\test.txt」ファイルを「test2.txt」に変更する場合

Rename-Item D:\temp\test.txt test2.txt

次のようにファイル名のみを指定するとカレントディレクトリの ファイルが対象となります。

Rename-Item test.txt test2.txt

指定したファイルが存在しない場合はエラーが発生するため、 事前にTest-Pathコマンドレットでチェックするなどして エラーを回避してください。

if(Test-Path test.txt){
  Rename-Item test.txt test2.txt
}

複数のファイル名を変更する

単一のファイルだけでなく 複数のファイルをまとめてリネームすることも出来ます。 その場合はGet-ChildItemコマンドレットと組み合わせます。 さらに-Replace演算子を使ってファイル名の一部を変更したりも可能です。

次のコードはGet-ChildItem、Rename-Item、-Replace演算子を 組み合わせて、ファイルの拡張子「.txt」を「.ini」に まとめて変更します。

Get-ChildItem d:\temp\*.txt | Rename-Item -NewName {
	$_ -Replace ".txt",".ini"}

フォルダ名を変更

フォルダ名を変更する場合も次のように記述します。

書式
Rename-Item フォルダパス 新しいフォルダ名

「D:\temp\f1」フォルダを「f2」に変更する場合

Rename-Item D:\temp\f1 f2

パスを省略してフォルダ名のみを記述した場合はカレントディレクトリが 対象となります。 そしてフォルダが存在しない場合はエラーとなります。 この辺りはファイル名変更の時と同じです。

PowerShell
PR