PowerShellのCopy-Item
コマンドレットは、ファイルやディレクトリをコピーするために使用されます。
基本的な使い方、オプション、使用例をまとめます。
基本構文
Copy-Item -Path <コピー元> -Destination <コピー先> [-Force] [-Recurse] [-Container] [-PassThru] [-Verbose]
パラメータの概要
-Path
:コピーするアイテム(ファイルまたはディレクトリ)のパス。-Destination
:コピー先のディレクトリまたはファイルパス。-Force
:コピー先に同じ名前のファイルやディレクトリが存在する場合、上書きします。-Recurse
:ディレクトリ内のすべてのファイルとサブディレクトリを再帰的にコピーします。-Container
:ディレクトリ自体を含めるかどうかを制御します(既定値:含む)。-PassThru
:コピーしたアイテムを返します。-Verbose
:詳細な情報を表示します。
基本的な使用例
単一ファイルのコピー
特定のファイルを別のディレクトリにコピーする例です。
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination"
このコマンドは、file.txt
をC:\Destination
ディレクトリにコピーします。
複数ファイルのコピー
ワイルドカードを使用して、複数のファイルを一度にコピーすることも可能です。
Copy-Item -Path "C:\Source\*.txt" -Destination "C:\Destination"
.txt
拡張子を持つすべてのファイルをコピーします。
フォルダ全体のコピー
フォルダとその内容を再帰的にコピーするには、-Recurse
を使用します。
Copy-Item -Path "C:\Source\Folder" -Destination "C:\Destination" -Recurse
このコマンドは、Folder
内のすべてのファイルとサブフォルダを含めてコピーします。
上書きコピー(-Force
)
デフォルトでは、Copy-Item
は既存のファイルを上書きしませんが、-Force
オプションを使用して強制的に上書きすることができます。
上書きコピー
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination" -Force
C:\Destination
に同じ名前のファイルがあった場合でも、強制的に上書きします。
再帰コピー(-Recurse
)
ディレクトリ全体やサブフォルダを再帰的にコピーする際には、-Recurse
を使います。
ディレクトリの再帰コピー
Copy-Item -Path "C:\Source\Folder" -Destination "C:\Destination" -Recurse
この例では、Folder
ディレクトリのすべてのサブディレクトリやファイルを含めてコピーします。
コンテナ(-Container
)
-Container
オプションは、ディレクトリをコピーするときに、その親フォルダ(コンテナ)を含めるかどうかを制御します。
デフォルトでは、コンテナは含まれます。
コンテナを含まないコピー
Copy-Item -Path "C:\Source\Folder" -Destination "C:\Destination" -Recurse -Container:$false
この例では、Folder
自体はコピーされず、その中の内容のみがコピーされます。
コピーしたアイテムの確認(-PassThru
)
コピーされたアイテムの情報を出力として得たい場合は、-PassThru
を使用します。
コピーしたアイテムを出力
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination" -PassThru
このコマンドは、file.txt
をコピーし、その結果を出力します。
詳細な情報の表示(-Verbose
)
Copy-Item
がどのファイルを処理しているかなどの詳細な情報を知りたい場合には、-Verbose
オプションが役立ちます。
詳細情報を表示
Copy-Item -Path "C:\Source\Folder" -Destination "C:\Destination" -Recurse -Verbose
このコマンドは、コピー中の詳細な情報を表示しながら処理を進めます。
エラーハンドリング
Copy-Item
でエラーが発生した場合、通常はエラーメッセージが表示されて終了しますが、PowerShellのtry-catch
構文を使用してエラーをキャッチし、エラーハンドリングを行うことが可能です。
エラーハンドリングの例
try {
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination" -Force
}
catch {
Write-Host "エラーが発生しました: $_"
}
この例では、コピー中にエラーが発生した場合、カスタムメッセージが表示されます。
まとめ
Copy-Item
はPowerShellで非常に強力なコマンドレットであり、ファイルやディレクトリを効率的にコピーするためのさまざまなオプションが用意されています。単純なファイルコピーから、再帰的なディレクトリのコピー、エラーハンドリングまで、多様な場面で役立つコマンドです。