Move-Item

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

構文

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

説明

コマンドレットは Move-Item 、プロパティ、コンテンツ、子項目を含む項目をある場所から別の場所に移動します。 移動元と移動先は、どちらも同じプロバイダーでサポートされている必要があります。

たとえば、ファイルやサブディレクトリを別のディレクトリに移動したり、レジストリのサブキーを別のキーに移動したりできます。 移動した項目は新しい場所に追加され、元の場所から削除されます。

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

このコマンドは、ファイルをドライブからC:ディレクトリにE:\Temp移動し、ファイルの名前を tst.txttest.txt .Test.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 -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"

このコマンドは、コマンドレットを Get-ChildItem 使用して、現在のディレクトリ (ドット. ()) とそのサブディレクトリ内のファイル名拡張子を持つすべての子項目を *.txt 取得します。 Recurse パラメーターを使用して取得を再帰的にし、Include パラメーターを使用して取得をファイルに*.txt制限します。

パイプライン演算子 (|) は、このコマンドの結果を送信して Move-Item、テキスト ファイルをディレクトリに TextFiles 移動します。

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

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

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

注意

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

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

このコマンドは、レジストリ キー内のレジストリ キーと値を MyCompany キー HKLM\SoftwareMyNewCompany 移動します。 ワイルドカード文字 (*) は、キー自体ではなく、キーの MyCompany 内容を移動する必要があることを示します。 このコマンドでは、オプションの Path パラメーター名と Destination パラメーター名は省略されます。

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

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

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

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

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

また、変換先パラメーターには、誤って解釈される可能性がある角かっこが含まれているため、単一引用符で囲む必要があります。

パラメーター

-Confirm

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

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

-Credential

注意

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

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

-Destination

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

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

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

-Exclude

このコマンドレットが操作で除外する項目を、文字列配列として指定します。 このパラメーターの値は、Path パラメーターを修飾します。 path 要素またはパターンを入力します 。次に例を示します *.txt。 ワイルドカード文字を使用できます。 Exclude パラメーターは、コマンドに項目の内容 (ワイルドカード文字でディレクトリの内容C:\Windowsを指定する場合などC:\Windows\*) が含まれている場合にのみ有効です。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は、about_Wildcardsで確認できます。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。

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

-Force

ユーザーに確認せずに、直ちにコマンドを実行します。 実装はプロバイダーごとに異なります。 詳細については、「about_Providers」を参照してください。

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

-Include

文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 path 要素またはパターンを入力します 。次に例を示します *.txt。 ワイルドカード文字を使用できます。 Include パラメーターは、コマンドに項目の内容 (ワイルドカード文字がディレクトリの内容C:\Windowsを指定する場合などC:\Windows\*) が含まれている場合にのみ有効です。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-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

-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:Current directory
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

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

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

入力

String

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

出力

None or an object representing the moved item

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

メモ

  • このコマンドレットは、同じプロバイダーでサポートされているドライブ間でファイルを移動しますが、同じドライブ内でのみディレクトリを移動します。
  • コマンドは Move-Item 項目のプロパティ、内容、および子項目を移動するため、既定ではすべての移動が再帰的になります。
  • このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「.」と入力します Get-PSProvider。 詳細については、「about_Providers」を参照してください。