次の方法で共有


Rename-Item

PowerShell プロバイダー名前空間内の項目の名前を変更します。

構文

Rename-Item
      [-Path] <String>
      [-NewName] <String>
      [-Force]
      [-PassThru]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [<CommonParameters>]
Rename-Item
      -LiteralPath <String>
      [-NewName] <String>
      [-Force]
      [-PassThru]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [<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
配置: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

-UseTransaction

アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「 about_Transactions」を参照してください。

型:SwitchParameter
Aliases:usetx
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

このコマンドレットへのパスを含む文字列をパイプ処理できます。

出力

None

既定では、このコマンドレットは出力を返しません。

PSObject

PassThru パラメーターを使用すると、名前が変更された項目を表すオブジェクトが返されます。

メモ

Windows PowerShell には、 Rename-Itemの次のエイリアスが含まれています。

  • ren
  • rni

Rename-Item は、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「 Get-PsProvider」と入力します。 詳細については、「 about_Providers」を参照してください。