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 つの場所から別の場所に移動します。 場所は、同じプロバイダーでサポートされている必要があります。
たとえば、あるディレクトリから別のディレクトリにファイルまたはサブディレクトリを移動したり、レジストリ サブキーをあるキーから別のキーに移動したりすることができます。 アイテムを移動すると、新しい場所に追加され、元の場所から削除されます。
例
例 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
は非表示のファイルを移動しません。 非表示のファイルを移動するには、Get-ChildItem
で Force パラメーターを使用します。
手記
Windows PowerShell 2.0 では、Get-ChildItem
コマンドレットの Recurse パラメーターを使用する場合、Path パラメーターの値はコンテナーである必要があります。
Include パラメーターを使用して、*.txt
ファイル名拡張子フィルター (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
) を指定します。
例 5: レジストリ キーと値を別のキーに移動する
このコマンドは、HKLM\Software
の MyCompany
レジストリ キー内のレジストリ キーと値を 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]'
元のディレクトリ名には左角かっこと右角かっこ ([
と ]
) が含まれているため、LiteralPath パラメーターはパスの代わりに使用されます。 パスは、バッククォート記号 (`
) が誤って解釈されないように、単一引用符 ('
) で囲まれています。
Destination パラメーターには、誤って解釈できる角かっこが含まれているため、単一引用符で囲む必要もあります。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
手記
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格したりするには、Invoke-Commandを使用します。
型: | PSCredential |
配置: | Named |
規定値: | Current user |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Destination
アイテムを移動する場所へのパスを指定します。 既定値は現在のディレクトリです。 ワイルドカードは使用できません。
移動する項目の名前を変更するには、Destination パラメーターの値に新しい名前を指定します。
型: | String |
配置: | 1 |
規定値: | Current directory |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-Exclude
文字列配列として、このコマンドレットが操作で除外する項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターン (*.txt
など) を入力します。 ワイルドカード文字を使用できます。
Exclude パラメーターは、コマンドに項目の内容 (C:\Windows\*
など) が含まれている場合にのみ有効です。ワイルドカード文字は、C:\Windows
ディレクトリの内容を指定します。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Filter
Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は、about_Wildcardsにあります。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Force
ユーザーの確認を求めずにコマンドを強制的に実行します。 実装はプロバイダーによって異なります。 詳細については、about_Providersを参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Include
文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターン (*.txt
など) を入力します。 ワイルドカード文字を使用できます。
Include パラメーターは、コマンドに項目の内容 (ワイルドカード文字が C:\Windows
ディレクトリの内容を指定する C:\Windows\*
など) が含まれている場合にのみ有効です。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-LiteralPath
1 つ以上の場所へのパスを指定します。
LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符 ('
) で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
詳細については、about_Quoting_Rulesを参照してください。
型: | String[] |
Aliases: | PSPath, LP |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PassThru
移動した項目を表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
アイテムの現在の場所へのパスを指定します。 既定値は現在のディレクトリです。 ワイルドカード文字を使用できます。
型: | String[] |
配置: | 0 |
規定値: | Current directory |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットへのパスを含む文字列をパイプ処理できます。
出力
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを使用すると、このコマンドレットは移動された項目を表すオブジェクトを返します。
メモ
PowerShell には、Move-Item
の次のエイリアスが含まれています。
すべてのプラットフォーム:
mi
move
ウィンドウズ:
mv
このコマンドレットは、同じプロバイダーでサポートされているドライブ間でファイルを移動しますが、同じドライブ内でのみディレクトリを移動します。
Move-Item
コマンドは項目のプロパティ、内容、および子項目を移動するため、すべての移動は既定で再帰的です。このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「
Get-PSProvider
」と入力します。 詳細については、about_Providersを参照してください。
関連リンク
PowerShell