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
ファイルを old-project.txt
ディレクトリに移動し、D:\Archive
に名前を変更しようとする例です。 結果は、出力に表示されるエラーです。
代わりに、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
手記
このパラメーターは、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