項目をある場所から別の場所に移動します。

構文

Move-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-確認] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Move-Item [-Path] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-確認] [-WhatIf] [-UseTransaction] [<CommonParameters>]

説明

Move-Item コマンドレットは、項目とそのプロパティ、内容、子項目を、ある場所から別の場所に移動します。移動元と移動先は、どちらも同じプロバイダーでサポートされている必要があります。たとえば、ファイルやサブディレクトリを別のディレクトリに移動したり、レジストリのサブキーを別のキーに移動したりできます。移動した項目は新しい場所に追加され、元の場所から削除されます。

パラメーター

-Credential <PSCredential>

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

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

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

必須

false

位置

named

既定値

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

true (ByPropertyName)

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

false

-Destination <string>

項目の移動先となる場所のパスを指定します。既定値は現在のディレクトリです。ワイルドカードも使用できますが、展開結果が単一の場所を指す必要があります。

移動する項目の名前を変更するには、Destination パラメーターの値に新しい名前を指定します。

必須

false

位置

2

既定値

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

true (ByPropertyName)

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

false

-Exclude <string[]>

指定した項目を除外します。このパラメーターの値は、Path パラメーターを修飾します。"*.txt" などのパス要素またはパターンを入力します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

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

false

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

false

-Filter <string>

プロバイダーの形式や言語でフィルターを指定します。このパラメーターの値は、Path パラメーターを修飾します。ワイルドカードを使用できるかどうかなど、フィルターの構文はプロバイダーによって異なります。フィルターは他のパラメーターよりも効率が良い方法です。これは、オブジェクトを取得した後に Windows PowerShell がオブジェクトをフィルターするのではなく、オブジェクトを取得する際にプロバイダーがフィルターを適用するためです。

必須

false

位置

named

既定値

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

false

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

false

-Force

既存の読み取り専用項目に上書きする項目をコマンドレットで移動できるようにします。実装はプロバイダーごとに異なります。詳細については、「about_Providers」を参照してください。Force パラメーターを使用しても、コマンドレットはセキュリティ制限を上書きできません。

必須

false

位置

named

既定値

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

false

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

false

-Include <string[]>

指定した項目だけを移動します。このパラメーターの値は、Path パラメーターを修飾します。"*.txt" などのパス要素またはパターンを入力します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

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

false

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

false

-LiteralPath <string[]>

項目の現在の場所のパスを指定します。Path と異なり、LiteralPath の値は入力したとおりに使用されます。ワイルドカードとして解釈される文字はありません。パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。単一引用符で囲んだ文字はエスケープ シーケンスとして解釈されません。

必須

true

位置

1

既定値

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

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

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

出力

なし、または移動された項目を表すオブジェクト。

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

Move-Item では、同じプロバイダーがサポートしている異なるドライブ間でファイルを移動できますが、ディレクトリは同じドライブ内でのみ移動することができます。

Move-Item コマンドでは、項目のプロパティ、内容、子項目が移動されるため、既定ではすべての移動が再帰的です。

Move-Item を組み込みエイリアス "move"、"mv"、および "mi" で参照することもできます。詳細については、「about_Aliases」を参照してください。

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

例 1

C:\PS>move-item -path C:\test.txt -destination E:\Temp\tst.txt

説明
-----------
このコマンドを実行すると、test.txt ファイルが C: ドライブから E:\Temp ディレクトリに移動され、名前が test.txt から tst.txt に変更されます。






例 2

C:\PS>move-item -path C:\Temp -destination C:\Logs

説明
-----------
このコマンドを実行すると、C:\Temp ディレクトリとその内容が C:\Logs ディレクトリに移動されます。Temp ディレクトリと、そのすべてのサブディレクトリおよびファイルが、Logs ディレクトリに格納されます。






例 3

C:\PS>move-item -path .\*.txt -destination C:\Logs

説明
-----------
このコマンドを実行すると、現在のディレクトリ (ドット (.) で指定) にあるすべてのテキスト ファイル (*.txt) が C:\Logs ディレクトリに移動されます。






例 4

C:\PS>get-childitem -path . -recurse -include *.txt | move-item -destination C:\TextFiles

説明
-----------
このコマンドを実行すると、現在のディレクトリとそのすべてのサブディレクトリにあるテキスト ファイルが、すべて再帰的に C:\TextFiles ディレクトリに移動されます。

このコマンドは、Get-ChildItem コマンドレットを使用して、現在のディレクトリ (ドット [.] で表す) とそのサブディレクトリにあるすべての子項目のうち、ファイル名拡張子が *.txt である項目を取得します。Recurse パラメーターを使用することで再帰的に取得を行い、Include パラメーターを使用することで *.txt ファイルだけを取得しています。

パイプライン演算子 (|) により、このコマンドの結果が Move-Item に渡され、テキスト ファイルが TextFiles ディレクトリに移動されます。

C:\Textfiles に移動する複数のファイルに同じ名前が付いている場合、Move-Item ではエラーが表示され、処理が続行されます。ただし、同じ名前のファイルのうち、1 つのファイルだけが C:\Textfiles に移動されます。その他のファイルは元のディレクトリに残ります。

Textfiles ディレクトリ (または移動先のパスの他の要素) が存在しない場合、このコマンドは失敗します。存在しないディレクトリは、Force パラメーターを使用した場合でも作成されません。Move-Item は、最初の項目を "Textfiles" という名前のファイルに移動し、ファイルが既に存在することを説明するエラーを表示します。

また、既定では、Get-ChildItem は隠しファイルを移動しません。隠しファイルを移動するには、Get-ChildItem で Force パラメーターを使用します。






例 5

C:\PS>move-item hklm:\software\mycompany\* hklm:\software\mynewcompany

説明
-----------
このコマンドを実行すると、HKLM\Softwar 内の MyCompany レジストリ キー内のレジストリ キーと値が MyNewCompany キーに移動されます。ワイルドカード文字 (*) は、MyCompany キー自体ではなく、その内容を移動することを示します。このコマンドでは、省略可能なパラメーター名 Path と Destination が省略されています。






例 6

C:\PS>move-item -literalpath 'Logs[Sept`06]' -destination 'Logs[2006]'

説明
-----------
このコマンドを実行すると、Logs[Sept`06] ディレクトリとその内容が Logs[2006] ディレクトリに移動されます。

Path パラメーターの代わりに LiteralPath パラメーターを使用しているのは、元のディレクトリ名に開始角かっこと終了角かっこ ("[" と "]") が含まれているためです。また、パスが単一引用符 (' ') で囲まれているのは、バッククォート記号 (`) が誤って解釈されないようにするためです。

Destination パラメーターではリテラル パスは必要ありません。これは、Destination に誤って解釈される可能性がある角かっこが含まれているため、Destination 変数も単一引用符で囲む必要があるためです。






関連項目




目次