Move-Item

12月 18, 2021
Module: Microsoft.PowerShell.Management

ある場所から別の場所にアイテムを移動します。

構文

説明

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コマンドレットを使用して、現在のディレクトリ(ドットで表される)およびそのサブディレクトリ内のすべての子アイテムで、”.Recurseパラメータを使用して再帰的に取得し、Includeパラメータを使用して取得を「.txt」ファイルに限定します。

パイプラインオペレーター (|) はこのコマンドの結果を Move-Item に送信し、Move-Item はテキストファイルを “TextFiles” ディレクトリに移動させます。

「C:³³」に移動するファイルが同じ名前の場合、Move-Itemはエラーを表示して続行しますが、それぞれの名前のファイルを「C:³³」に1つだけ移動し、その他のファイルは元のディレクトリに残ります。Move-Item は、最初の項目を “Textfiles” というファイルに移動し、そのファイルがすでに存在することを説明するエラーを表示します。Include パラメーターで .txt ファイル名拡張子フィルター (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles) を指定します。

Example 5: Move registry keys and values to another key

このコマンドは、HKLM\Software の “MyCompany” レジストリーキー内のレジストリーキーと値を “MyNewCompany” キーに移動します。ワイルドカード文字 (*) は、キー自体ではなく、「MyCompany」キーの内容を移動することを示します。

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

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

このコマンドは「Logs」ディレクトリ (とその内容) を「Logs」ディレクトリに移動します。

Move-Item -LiteralPath 'Logs' -Destination 'Logs'

元のディレクトリ名には左大括弧と右大括弧 (“”) が含まれているため、Path の代わりに LiteralPath パラメータを使用します。また、バックティック記号 (`) が誤って解釈されないようにパスを単一引用符 (‘ ‘) で囲みます。

Destination パラメーターは、リテラル パスを必要としません。Destination 変数も一重引用符で囲む必要があり、誤解される可能性がある大括弧が含まれているからです。

タイプ: SwitchParameter
エイリアス: cf
位置:。 Named
初期値: False
パイプライン入力を受け付けます。 False
ワイルドカード文字を受け入れる: False
-Credential

Note

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

Type: PSCredential
Position: Named
初期値: Current user
パイプライン入力として許可されました。 True
ワイルドカード文字を受け入れる: False
-Destination

アイテムを移動する場所へのパスを指定します。デフォルトはカレントディレクトリです。ワイルドカードは許可されますが,結果は1つの場所を指定する必要があります。

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

1

String3

Type: String
Position: 1
初期値: Current directory
パイプライン入力を許可する.Destination: Destination:
True
ワイルドカード文字を受け入れる: True
-Exclude

操作で除外する項目または項目を、文字列配列として指定します。 このパラメータの値は、Path パラメータを修飾します。 *.txt のようなパス要素またはパターンを入力します。 ワイルドカード文字が許可されます。 Exclude パラメータは、ワイルドカード文字が C:\Windows ディレクトリの内容を指定する C:\Windows\* のような項目の内容を含むコマンドの場合のみ有効です。

Type: String
Position: Named
初期値: なし
パイプライン入力も受け付けるようにしました。 False
ワイルドカード文字を受け入れる: True
-Filter

パスパラメータを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルタの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 フィルタは、取得後に PowerShell がオブジェクトをフィルタリングするのではなく、cmdletgets 時にプロバイダが適用するため、他のパラメータよりも効率的です。

Type: String
Position: Named
初期値: None
パイプライン入力に同意します。 False
ワイルドカード文字を受け入れる: True
-Force

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

Type: SwitchParameter
Position: Named
初期値: False
パイプライン入力も受け付けるようにしました。 False
ワイルドカード文字を受け入れる: False
-Include

このコマンドレットが操作に含むアイテムまたは項目を、文字列配列として指定します。 このパラメータの値は、Path パラメータを修飾します。 "*.txt" のようなパス要素またはパターンを入力します。 ワイルドカード文字が許可されます。 Include パラメータは、コマンドに項目の内容が含まれる場合にのみ有効で、たとえば、C:\Windows\* のように、ワイルドカード文字が C:\Windows ディレクトリの内容を指定する場合です。

Type: String
Position: Named
初期値: なし
パイプライン入力に対応しました。 False
ワイルドカード文字を受け付ける: True
-LiteralPath

一つまたは複数の位置へのパスを指定する。 LiteralPathの値は、入力されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれる場合は、一重引用符で囲みます。 一重引用符は、PowerShell にいかなる文字もエスケープシーケンスとして解釈しないように指示します。

詳細については、about_Quoting_Rules を参照してください。

Type: String
Aliases: PSPath, LP
Position.Path
名前
デフォルト値: なし
パイプライン入力を受け付けます。 True
ワイルドカード文字を受け入れる: False
-PassThru

作業中の項目を示すオブジェクトを返します。デフォルトでは、このコマンドレットは出力を生成しません。

Type: SwitchParameter
Position: Named
初期値: False
パイプライン入力も受け付けるようにしました。 False
ワイルドカード文字を受け入れる: False
-Path

項目の現在の位置へのパスを指定します。デフォルトはカレントディレクトリです。ワイルドカード文字が使用できます。

Type: String
Position: 0
初期値: Current directory
パイプライン入力も受け付けます。 True
Accept Wildcard characters: True
-WhatIf

コマンドレットを実行するとどうなるか表示されます。コマンドレットは実行されません。

タイプ: SwitchParameter
エイリアス: wi
位置です。 Named
初期値: False
パイプライン入力を許可する。 False
ワイルドカード文字を受け入れる: False

Inputs

String

このコマンドレットへのパスを含むストリングをパイプすることができるようにします。

出力

なし、または移動したアイテムを表すオブジェクト

PassThruパラメーターを使用する場合、このコマンドレットは、移動したアイテムを表すオブジェクトを生成します。

注意事項

  • このコマンドレットは、同じプロバイダーによってサポートされているドライブ間でファイルを移動しますが、同じドライブ内でのみディレクトリを移動します。
  • Move-Itemコマンドは項目のプロパティ、コンテンツおよび子項目を移動するので、デフォルトですべての移動を再帰的に行うように設計されています。セッションで利用可能なプロバイダーの一覧を表示するには、Get-PSProviderと入力します。詳細については、about_Providersを参照してください。
  • Clear-Item
  • Copy-Item
  • Get-Item
  • Invoke-Item
  • New-Item
  • Remove-Item
  • Rename-Item
  • Set-Item
  • about_Providers

コメントを残す

メールアドレスが公開されることはありません。