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.txtmonday_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:\Archiveold-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

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Note

このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格したりするには、Invoke-Command を使用 します

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

非表示または読み取り専用のファイルや読み取り専用のエイリアスや変数など、変更できない項目の名前を変更するようにコマンドレットに強制します。 コマンドレットは、定数のエイリアスや変数を変更できません。 実装はプロバイダーごとに異なります。 詳細については、「about_Providers」を参照してください

Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

1 つ以上の場所へのパスを指定します。 LiteralPath値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。

詳細については、「about_Quoting_Rules」を参照してください

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NewName

項目の新しい名前を指定します。 パスと名前ではなく、名前のみを入力します。 Path パラメーターで指定されたパスとは異なるパスを入力すると、Rename-Itemエラーが発生します。 アイテムの名前を変更して移動するには、次のコマンドを使用 Move-Itemします。

NewName パラメーターの値にワイルドカード文字を使用することはできません。 複数のファイルの名前を指定するには、正規表現で Replace 演算子を使用します。 Replace 演算子の詳細については、「about_Comparison_Operators」を参照してください

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

パイプラインに項目を表すオブジェクトを返します。 既定では、このコマンドレットによる出力はありません。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

名前を変更する項目のパスを指定します。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

String

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

出力

None

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

PSObject

PassThru パラメーターを使用すると、このコマンドレットは名前が変更された項目を表すオブジェクトを返します。

メモ

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

  • すべてのプラットフォーム:
    • ren
    • rni

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