PowerShellでファイルやフォルダをコピーする方法:Copy-Item コマンド完全ガイド

PowerShellを使用してファイルやフォルダをコピーする際に便利なコマンドが Copy-Item です。本記事では、Copy-Item の基本的な使い方から、オプションを活用した応用的な方法まで詳しく解説します。ファイル管理を効率的に行いたい方や、スクリプトを活用して作業を自動化したい方は、ぜひ参考にしてください。

Copy-Item コマンドとは?

PowerShellの Copy-Item コマンドは、ファイルやフォルダをコピーするために使用されます。WindowsのGUI操作で行う「コピー&ペースト」に相当する機能をスクリプトで実行できるため、業務の効率化に役立ちます。

基本構文

Copy-Item -Path <コピー元> -Destination <コピー先>

例えば、 C:\source\file.txtC:\destination\ にコピーするには、以下のように記述します。

Copy-Item -Path "C:\source\file.txt" -Destination "C:\destination\"

Copy-Itemの基本的な使い方

ファイルをコピーする

1つのファイルをコピーする場合は、以下のように実行します。

Copy-Item -Path "C:\source\file.txt" -Destination "C:\destination\"

このコマンドは file.txtC:\destination\ にコピーします。

フォルダごとコピーする

フォルダごとコピーするには、-Recurse オプションを使用します。

Copy-Item -Path "C:\source" -Destination "C:\destination" -Recurse

これにより、 C:\source フォルダの中身すべてが C:\destination にコピーされます。

Copy-Item のオプション一覧

Copy-Item には、さまざまなオプションが用意されています。

オプション説明
-Pathコピー元のパスを指定
-Destinationコピー先のパスを指定
-Recurseフォルダごとコピーする際に使用
-Force読み取り専用ファイルを上書きする場合に使用
-PassThruコピーしたオブジェクトを出力する
-WhatIf実際には実行せず、どのような動作になるかを確認
-Confirm実行前に確認を求める

Copy-Item の応用例

上書きを許可してコピーする

通常、Copy-Item は既存のファイルがあるとエラーを出します。上書きしたい場合は -Force を使います。

Copy-Item -Path "C:\source\file.txt" -Destination "C:\destination\file.txt" -Force

複数のファイルをコピーする

ワイルドカードを使って、特定の種類のファイルをまとめてコピーできます。

Copy-Item -Path "C:\source\*.txt" -Destination "C:\destination\"

このコマンドは、 C:\source 内のすべての .txt ファイルを C:\destination にコピーします。

実行前に確認する

コピー前に実行内容を確認したい場合は、-WhatIf を使用します。

Copy-Item -Path "C:\source\file.txt" -Destination "C:\destination\" -WhatIf

このコマンドは、実際にはコピーせずにどのように動作するかを表示します。

サブフォルダ内のファイルのみコピーする

フォルダの構造を保たずに、ファイルだけをコピーしたい場合は -Recurse を使いつつ -Container を使わないようにします。

Get-ChildItem "C:\source" -Recurse | Copy-Item -Destination "C:\destination\"

この方法を使うと、フォルダの構造を無視してファイルだけが C:\destination\ にコピーされます。

Copy-Item を活用したスクリプト例

指定フォルダ内の特定拡張子のファイルをバックアップ

$source = "C:\source"
$destination = "D:\backup"
$files = Get-ChildItem -Path $source -Filter "*.log"
foreach ($file in $files) {
    Copy-Item -Path $file.FullName -Destination $destination -Force
}

このスクリプトは C:\source 内の .log ファイルを D:\backup にコピーします。

毎日特定のフォルダをバックアップするスクリプト

タスクスケジューラと組み合わせて、毎日バックアップを実行できます。

$source = "C:\important_data"
$destination = "D:\backup\$(Get-Date -Format yyyyMMdd)"
Copy-Item -Path $source -Destination $destination -Recurse -Force

このスクリプトは C:\important_dataD:\backup\20240303 のような日付フォルダにバックアップします。

まとめ

PowerShell の Copy-Item コマンドは、ファイルやフォルダのコピーをスクリプトで自動化するのに非常に便利です。本記事では、基本的な使い方から応用例まで詳しく解説しました。業務の効率化にぜひ活用してみてください。

タイトルとURLをコピーしました