Rename-Item
PowerShell プロバイダー名前空間内の項目の名前を変更します。
構文
Rename-Item
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Rename-Item
-LiteralPath <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Rename-Item
コマンドレットは、指定した項目の名前を変更します。 このコマンドレットを使用しても、名前を変更する項目の内容には影響ありません。
新しい名前と共にパスを指定するなど、 Rename-Item
を使用して項目を移動することはできません。 アイテムを移動して名前を変更するには、 Move-Item
コマンドレットを使用します。
例
例 1: ファイルの名前を変更する
このコマンドは、ファイル daily_file.txt
の名前を monday_file.txt
に変更します。
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
例 2: アイテムの名前を変更して移動する
アイテムの名前変更と移動の両方に Rename-Item
を使用することはできません。 具体的には、パスが Path パラメーターで指定されたパスと同じでない限り、NewName パラメーターの値のパスを指定することはできません。 そうでない場合は、新しい名前のみが許可されます。
Rename-Item -Path "project.txt" -NewName "d:\archive\old-project.txt"
Rename-Item : can't rename because the target specified represents a path or device name.
At line:1 char:12
+ Rename-Item <<<< -path project.txt -NewName d:\archive\old-project.txt
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], PS> Move-Item -Path "project.txt" -De
stination "d:\archive\old-project.txt"
次の使用例は、現在のディレクトリのproject.txt
ファイルの名前を D:\Archive
ディレクトリにold-project.txt
します。 結果は出力に示されるようなエラーになります。
代わりに、 Move-Item
コマンドレットを使用してください。
例 3: レジストリ キーの名前を変更する
この例では、レジストリ キーの名前を Advertising から Marketing に変更します。 コマンドが完了すると、キーの名前が変更されますが、キーのレジストリ エントリに変更はありません。
Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"
例 4: 複数のファイルの名前を変更する
次の使用例は、現在のディレクトリ内のすべての *.txt
ファイルの名前を *.log
に変更します。
Get-ChildItem *.txt
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.TXT
-a---- 10/3/2019 7:46 AM 2918 Monday.Txt
-a---- 10/3/2019 7:47 AM 2918 Wednesday.txt
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
Get-ChildItem *.log
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.log
-a---- 10/3/2019 7:46 AM 2918 Monday.log
-a---- 10/3/2019 7:47 AM 2918 Wednesday.log
Get-ChildItem
コマンドレットは、.txt
ファイル拡張子を持つ現在のフォルダー内のすべてのファイルを取得し、それらをRename-Item
にパイプします。 NewName の値は、値が NewName パラメーターに送信される前に実行されるスクリプト ブロックです。
スクリプト ブロックでは、 $_
自動変数は、パイプラインを介してコマンドに来るときの各ファイル オブジェクトを表します。 スクリプト ブロックでは、 -replace
演算子を使用して、各ファイルのファイル拡張子を .log
に置き換えます。 -replace
演算子を使用した照合では、大文字と小文字は区別されないことに注意してください。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
Note
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格したりするには、 Invoke-Command を使用します。
型: | PSCredential |
配置: | Named |
規定値: | Current user |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Force
非表示または読み取り専用のファイルや読み取り専用のエイリアスや変数など、変更できない項目の名前を変更するようにコマンドレットに強制します。 コマンドレットは、定数のエイリアスや変数を変更できません。 実装はプロバイダーごとに異なります。 詳細については、「 about_Providers」を参照してください。
Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-LiteralPath
1 つ以上の場所へのパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
詳細については、「 about_Quoting_Rules」を参照してください。
型: | String |
Aliases: | PSPath, LP |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-NewName
項目の新しい名前を指定します。 パスと名前ではなく、名前のみを入力します。 Path パラメーターで指定されたパスとは異なるパスを入力すると、エラーRename-Item
生成されます。
アイテムの名前を変更して移動するには、 Move-Item
を使用します。
NewName パラメーターの値にワイルドカード文字を使用することはできません。 複数のファイルの名前を指定するには、正規表現で Replace 演算子を使用します。 Replace 演算子の詳細については、「 about_Comparison_Operators」を参照してください。
型: | String |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PassThru
パイプラインに項目を表すオブジェクトを返します。 既定では、このコマンドレットによる出力はありません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
名前を変更する項目のパスを指定します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットへのパスを含む文字列をパイプ処理できます。
出力
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを使用すると、名前が変更された項目を表すオブジェクトが返されます。
メモ
PowerShell には、 Rename-Item
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
ren
rni
Rename-Item
は、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「 Get-PsProvider
」と入力します。 詳細については、「 about_Providers」を参照してください。
関連リンク
PowerShell