次の方法で共有


Move-Item

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

構文

Move-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]
Move-Item
    -LiteralPath <String[]>
    [[-Destination] <String>]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

説明

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

例 1: ファイルを別のディレクトリに移動して名前を変更する

このコマンドは、「Test.txt」ファイルを C: ドライブから「E:\Temp」ディレクトリに移動し、「test.txt」から「tst.txt」に名前を変更します。

Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt

例 2: ディレクトリとその内容を別のディレクトリに移動する

このコマンドは、「C:\Temp」ディレクトリとその内容を「C:\Logs」ディレクトリに移動します。 「Temp」ディレクトリとそのすべてのサブディレクトリとファイルは、「Logs」ディレクトリに表示されます。

Move-Item -Path C:\Temp -Destination C:\Logs

例 3: 指定した拡張子のすべてのファイルを現在のディレクトリから別のディレクトリに移動する

このコマンドは、現在のディレクトリ (ドット ('.') で表される) 内のすべてのテキスト ファイル ("*.txt") を移動します を "C:\Logs" ディレクトリに移動します。

Move-Item -Path .\*.txt -Destination C:\Logs

例 4: 指定した拡張子のすべてのファイルを現在のディレクトリから別のディレクトリに再帰的に移動する

このコマンドは、現在のディレクトリとすべてのサブディレクトリからすべてのテキストファイルを再帰的に「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 パラメーターを使用します。

注: Windows PowerShell 2.0 では、 コマンドレットの Get-ChildItem パラメーターを使用する場合、Path パラメーターの値はコンテナーである必要があります。 Include パラメーターを使用して、.txt ファイル名拡張子フィルター (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles) を指定します。

Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"

例 5: レジストリ キーと値を別のキーに移動する

このコマンドは、"HKLM\Software" の "MyCompany" レジストリ キー内のレジストリ キーと値を "MyNewCompany" キーに移動します。 ワイルドカード文字 ('*') は、キー自体ではなく、"MyCompany" キーの内容を移動する必要があることを示します。 このコマンドでは、省略可能な PathDestination パラメーター名は省略されます。

Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"

例 6: 指定したディレクトリのサブディレクトリにディレクトリとその内容を移動する

このコマンドは、"Logs[Sept'06]" ディレクトリ (およびその内容) を "Logs[2006]" ディレクトリに移動します。

元のディレクトリ名には左角かっこと右角かっこ ("[" と "]") が含まれているため、Path の代わりに LiteralPath パラメーターが使用されます。 また、パスは一重引用符 (' ') で囲まれているため、バッククォート記号 (') が誤って解釈されることはありません。

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

Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'

パラメーター

-Confirm

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

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

-Credential

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

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

-Destination

アイテムを移動する場所へのパスを指定します。 既定値は、現在のディレクトリです。 ワイルドカードは使用できますが、結果には 1 つの場所を指定する必要があります。

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

型:String
配置:1
規定値:Current directory
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Exclude

文字列配列として、このコマンドレットが操作から除外する項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 "*.txt" などのパス要素またはパターンを入力します。 ワイルドカード文字を使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Filter

プロバイダーの形式または言語でフィルターを指定します。 このパラメーターの値は、Path パラメーターを修飾します。

ワイルドカード文字の使用を含むフィルターの構文は、プロバイダーによって異なります。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。

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

-Force

ユーザーの確認を求めずにコマンドを強制的に実行します。 実装はプロバイダーによって異なります。 詳細については、about_Providersを参照してください。

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

-Include

このコマンドレットが操作で移動する項目を文字列配列として指定します。 このパラメーターの値は、Path パラメーターを修飾します。 "*.txt" などのパス要素またはパターンを入力します。 ワイルドカード文字を使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-LiteralPath

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

型:String[]
Aliases:PSPath
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-PassThru

作業中のアイテムを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。

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

-Path

アイテムの現在の場所へのパスを指定します。 既定値は、現在のディレクトリです。 ワイルドカード文字を使用できます。

型:String[]
配置:0
規定値:Current directory
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-UseTransaction

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

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

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

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

入力

String

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

出力

None or an object representing the moved item.

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

メモ

このコマンドレットは、同じプロバイダーでサポートされているドライブ間でファイルを移動しますが、同じドライブ内でのみディレクトリを移動します。

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

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