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

構文

Rename-Item [-Path] <string> [-NewName] <string> [-Credential <PSCredential>] [-Force] [-PassThru] [-確認] [-WhatIf] [-UseTransaction] [<CommonParameters>]

説明

Rename-Item コマンドレットは、指定した項目の名前を変更します。このコマンドレットを使用しても、名前を変更する項目の内容には影響ありません。

Rename-Item を使用し、新しい名前およびパスを指定することによって項目の移動はできません。項目を移動して名前を変更するには、Move-Item コマンドレットを使用します。

パラメーター

-Credential <PSCredential>

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。既定値は現在のユーザーです。

"User01" や "Domain01\User01" のようなユーザー名を入力するか、Get-Credential コマンドレットで生成されるような PSCredential オブジェクトを入力します。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。

このパラメーターは、Windows PowerShell でインストールされるプロバイダーではサポートされていません。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Force

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

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-NewName <string>

項目の新しい名前を指定します。パスと名前ではなく、名前のみを入力します。Path パラメーターで指定したパスと異なるパスを入力した場合、Rename-Item によってエラーが生成されます。項目の名前を変更して移動するには、Move-Item コマンドレットを使用します。

NewName の値には、ワイルドカード文字を使用できません。複数ファイルに名前を指定するには、正規表現で Replace 演算子を使用します。Replace 演算子の詳細については、「get-help about_comparison_operators」と入力してください。具体的な方法については、例を参照してください。

必須

true

位置

2

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-PassThru

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

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Path <string>

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

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-確認

コマンドを実行する前に確認メッセージを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-WhatIf

実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-UseTransaction

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

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String

パイプを使用してパスを含む文字列を Rename-Item に渡すことができます。

出力

なし、または名前が変更された項目を表すオブジェクト。

Passthru パラメーターを使用すると、Rename-Item は名前が変更された項目を表すオブジェクトを生成します。それ以外の場合、このコマンドレットによる出力はありません。

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

例 1

C:\PS>rename-item -path c:\logfiles\daily_file.txt -newname monday_file.txt

説明
-----------
このコマンドを実行すると、ファイル daily_file.txt の名前が monday_file.txt に変更されます。






例 2

C:\PS>rename-item -path project.txt -newname d:\archive\old-project.txt

Rename-Item : Cannot 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], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand


C:\PS> move-item -path project.txt -destination d:\archive\old-project.txt
# Command succeeds

説明
-----------
この例では、Rename-Item コマンドレットを使用して項目の名前変更および移動の両方ができないことを示します。特に、Path パラメーターで指定されたパスと同一でない限り、NewName パラメーター値にパスを指定できません。そうでない場合は、新しい名前のみが許可されます。

最初のコマンドは、Rename-Item コマンドレットを使用して、現在のディレクトリにある project.txt ファイルの名前を D:\Archive ディレクトリにある old-project.txt に変更します。結果は出力に示されるようなエラーになります。

2 番目のコマンドは、Move-Item コマンドレットを使用したファイルの移動および名前変更の正しい方法を示します。Move-Item コマンドレットを使用すると、Destination パラメーターの値で新しいパスと新しい名前を指定できます。






例 3

C:\PS>rename-item HKLM:\Software\MyCompany\Advertising -NewName Marketing

説明
-----------
このコマンドは、Rename-Item コマンドレットを使用して、レジストリ キーの名前を Advertising から Marketing に変更します。コマンドが完了すると、キーの名前が変更されますが、キーのレジストリ エントリに変更はありません。






例 4

C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt','.log' }

説明
-----------
この例では、NewName パラメーターがワイルドカード文字を受け入れなくても、Replace 演算子を使用して複数ファイルの名前を変更する方法を示します。

このコマンドは、現在のディレクトリにあるすべての .txt ファイルの名前を .log に変更します。

コマンドは Get-ChildItem コマンドレットを使用して、現在のディレクトリにある、ファイル名拡張子が .txt であるすべてのファイルを取得します。その後、パイプライン演算子 (|) を使用して結果ファイルを Rename-Item コマンドレットに送信します。

Rename-Item コマンドでは、NewName パラメーター値は、NewName パラメーターに値が送信される前に実行されるスクリプト ブロックです。

スクリプト ブロックでは、$_ 自動変数は、パイプラインを介してコマンドに渡される各ファイル オブジェクトを表します。このコマンドはドット形式 (.) を使用して、各ファイル オブジェクトの Name プロパティを取得します。Replace 演算子は、各ファイルの .txt ファイル名拡張子を .log に置き換えます。

Replace 演算子は正規表現に対応しているので、"txt" の前に付けられたドットは、どの文字にも一致するものとして解釈されます。ドット (.) のみと一致するためには、バックスラッシュ文字 (\) でエスケープします。".log" は文字列であって正規表現ではないため、これにバックスラッシュ文字を使用する必要ありません。






関連項目




目次