ファイルやフォルダーを手動でコピーするのは簡単ですが、大量に処理したり自動化したいときにはPowerShellのCopy-Item
コマンドが断然便利です。
こんなときに特に役立ちます:
- 「特定の拡張子だけコピーしたい」
- 「フォルダごとまとめてバックアップしたい」
- 「同名ファイルを上書きせずにスクリプトで処理したい」
今回は、PowerShell初心者向けに**Copy-Item
の基本構文から実用的なオプション・注意点・エラー対応**まで丁寧に解説します。
Copy-Itemとは?

Copy-Item
は、PowerShellでファイルやディレクトリをコピーするための基本コマンドレットです。
Windowsのバッチファイルのcopy
やxcopy
と似ていますが、より柔軟でPowerShellらしい記述が可能なんです。まずは基本的な使い方から見てみましょう。
基本構文と使用例
基本的な構文はとてもシンプルです。
Copy-Item -Path "コピー元パス" -Destination "コピー先パス"
例:単一ファイルをコピー
Copy-Item -Path "C:\data\report.txt" -Destination "D:\backup\"
この基本形を覚えておけば、ほとんどのコピー作業ができるようになります。
フォルダをコピーする場合
フォルダごとコピーするには、-Recurse
オプションを忘れずに付けましょう!
Copy-Item -Path "C:\data" -Destination "D:\backup" -Recurse
重要なポイント
拡張子でファイルをフィルタリングしてコピー
Get-ChildItem
と組み合わせることで、特定のファイルのみをコピーできます。
特定の拡張子のファイルだけをコピー
Get-ChildItem "C:\data" -Filter "*.txt" | Copy-Item -Destination "D:\backup"
サブフォルダーも含めてコピーしたい場合
Get-ChildItem "C:\data" -Recurse -Filter "*.log" | Copy-Item -Destination "D:\backup"
この方法を覚えておくと、必要なファイルだけを効率的にコピーできるようになります。
よく使うオプション一覧

実用的なオプションをまとめました。
オプション | 説明 |
---|---|
-Recurse | フォルダー内のすべてのファイルも含める |
-Force | 読み取り専用・隠し属性でもコピー |
-Container | フォルダ構造もそのままコピー(デフォルト) |
-Verbose | 実行内容を詳細表示 |
-WhatIf | 実行せずに何が起こるかを表示(確認用) |
-WhatIf
は特に便利で、実際にコピーする前に何が起こるかを確認できるので安心です。
よくあるエラーとその対処法
実際に使っていると、こんなエラーに遭遇することがあります。
パスが見つかりません(Path not found)
原因:指定したパスが存在しない
対策:Test-Path "C:\data"
で事前確認しましょう
アクセスが拒否されました(Access Denied)
原因:権限不足
対策:PowerShellを「管理者として実行」してから試してください
ディレクトリと同名ファイルが存在する
原因:同名のファイル・フォルダーがあるとコピーに失敗
対策:対象を事前に確認して削除または別名に変更
エラーが出ても慌てずに、原因を確認してから対処すれば大丈夫です。
まとめ
Copy-Item
は、PowerShellを使ったファイル管理の基本中の基本です。
大量ファイルのコピーや定期バックアップ、スクリプトによる自動化において非常に強力なツールなんです。
ポイントまとめ
Copy-Item -Path -Destination
で基本コピー- フォルダごとは
-Recurse
を忘れずに - 拡張子でのフィルターは
Get-ChildItem
と組み合わせる - エラー対策には
Test-Path
や-WhatIf
が便利
コメント