PowerShell: ファイルのコピー(ワイルドカードもOK)

PowerShellでファイルをコピーするにはCopy-Itemコマンドレットを 使います。Copy-Itemでは単一のファイルのコピーだけでなく、 ワイルドカードを使って複数のファイルを一括コピーすることも出来ます。

単一ファイルのコピー

Copy-Itemの書式は次の通りです。

書式
Copy-Item コピー元のパス コピー先のパス

コピー元のファイルパスとコピー先のファイルパスを記述します。 単にファイル名だけを記述した場合はカレントディレクトリが対象となります。

次のコードはカレントディレクトリにある「test.txt」ファイルを 「test2.txt」という名前でコピーします。

Copy-Item test.txt test2.txt

次のコードは「d:\temp」フォルダにある「test.txt」ファイルを 「d:\temp\back」フォルダに同じ名前でコピーします。

Copy-Item D:\temp\test.txt D:\temp\back\test.txt

# 又は(コピー先のファイル名を省略して)
Copy-Item D:\temp\test.txt D:\temp\back

ファイル名を変更しない場合、 コピー先のファイル名は省略しても大丈夫です。

コピー先のフォルダが存在しない場合(パスが通らない場合)は 次のようなエラーが発生します。

|  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Could not find a part of the path
| 'D:\temp\back\test.txt'.

ファイルを上書きする場合は-Forceオブションを指定します。

Copy-Item D:\temp\test.txt D:\temp\back\test.txt -Force

ワイルドカードによる複数ファイルコピー

例えば「d:\temp」フォルダにあるテキストファイルを一括で「d:\temp\back」フォルダに コピーしたい場合、ワイルドカードを使って次のように記述します。

Copy-Item D:\temp\*.txt D:\temp\back

-Excludeオプションを指定して特定のファイルを除外することもできます。 次のコードは「hoge.txt」ファイル以外の「.txt」ファイルをまとめてコピーします。

Copy-Item D:\temp\*.txt D:\temp\back -Exclude hoge.txt
PowerShell