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: ファイルを別のディレクトリに移動し、名前を変更する
このコマンドは、ファイルを 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 -Path ".\*.txt" -Recurse | Move-Item -Destination "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
非表示のファイルは移動されません。 非表示のファイルを移動するには、 で 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\Software
と値を キーに MyNewCompany
移動します。 ワイルドカード文字 (*
) は、キー自体ではなく、キーの 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 パラメーターが使用されます。 パスも単一引用符 ('
) で囲まれているため、バックティック記号 (`
) が誤って解釈されません。
Destination パラメーターには、誤って解釈される可能性がある角かっこが含まれているため、単一引用符で囲む必要もあります。
パラメーター
-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 パラメーターを修飾します。 などのパス要素またはパターンを *.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 パラメーターを修飾します。 などのパス要素またはパターンを *.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 |
入力
このコマンドレットへのパスを含む文字列をパイプできます。
出力
None or an object representing the moved item
PassThru パラメーターを使用すると、このコマンドレットは移動された項目を表すオブジェクトを生成します。 それ以外の場合、このコマンドレットによる出力はありません。
メモ
- このコマンドレットは、同じプロバイダーでサポートされているドライブ間でファイルを移動しますが、ディレクトリは同じドライブ内でのみ移動します。
- コマンドは項目の
Move-Item
プロパティ、内容、および子項目を移動するため、すべての移動は既定で再帰的です。 - このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用できるプロバイダーを一覧表示するには、「」と入力します
Get-PSProvider
。 詳細については、「about_Providers」を参照してください。