copy - ファイルの複製

にメンテナンス済み

copy コマンドとは

copyコマンドは、コマンドプロンプト上でコピー&ペーストを行うためのコマンドです。

オリジナルのファイルを残したまま、複製したファイルを作成することができます。

データをバックアップしたいときや、同じ内容の文書を複数作りたいときに便利です。

オプションを指定することで、ファイルの更新日時を変更したり、暗号化の設定を行うこともできます。

また、空ファイルを作成する方法として利用されることもあります。

このページでは、copyコマンドの基本的な使い方から、オプションの設定方法まで分かり易く説明しています。また、具体的なサンプルコードも記載しています。

copy コマンドの使い方

コピーコマンドの一般的な構文は以下の通りです。

copy [オプション] <コピー元> <コピー先>

より正確に表すと以下のようになりますが、基本的な使い方は上記の構文で問題ありません。

copy [/d] [/v] [/n] [/y | /-y] [/z] [/a | /b] <コピー先> [/a | /b] [+<追加のコピー先> [/a | /b] [+ ...]] [<コピー先> [/a | /b]]

オプションについては後述しますが、オプションを指定しない場合は、コピー元、コピー先の順に記述し、コピー元のパスからコピー先のパスにファイルをコピーします。

コピー先にすでに同名のファイルが存在する場合は、デフォルトでは確認メッセージが表示されます。

オプション

オプション説明
/Aファイルの属性をコピーします。(デフォルトで有効)
/Bバイナリモードでコピーします。
/Dコピー元のファイルが暗号化されている場合、暗号化を解除してコピーを実行します。
/Vエラーの記録を表示し、データが正しく記録されたかどうかを確認することができます。パフォーマンスが低下する可能性があります。
/Yコピー先に同名のファイルが存在する場合、確認メッセージを表示せずに上書きします。
/-Yコピー先に同名のファイルが存在する場合、確認メッセージを表示して上書きするかどうかを選択します。(デフォルトで有効)
/Zネットワーク経由でコピーを実行します。(再起動可能モード)

copy コマンドの実行例

基本的な使い方

ユーザーディレクトリのdocumentフォルダにあるsample.txtを、copied.txtという名前でコピーします。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>copy documents/sample.txt documents/copied.txt

テキストファイルを結合する

copyコマンドを利用することで、複数のテキストファイルを結合することができます。

ユーザーディレクトリのdocumentフォルダにあるbase.txtunion.txtを結合し、extention.txtという名前で保存します。

base.txtextention.txtの内容は以下の通りです。union.txtは空ファイルとして用意しておきます。

base.txt
基本情報
extention.txt
拡張情報

この状態で、以下のコマンドを実行します。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>copy documents/sample.txt documents/copied.txt
base.txt
union.txt を上書きしますか? (Yes/No/All): Yes
extention.txt
1 個のファイルをコピーしました。
C:\users\user>

上記のコマンドを実行すると、union.txtの内容が以下のように変更されます。

union.txt
基本情報拡張情報

バッチファイルでの利用例

バッチファイルで利用する場合は、確認メッセージを表示せずに上書きする/Yオプションを指定することで、確認メッセージを表示せずに上書きすることができます。

前述の例と同様に、ユーザーディレクトリのdocumentフォルダにあるsample.txtを、copied.txtという名前でコピーします。

@echo off
setlocal

set FOLDER=%userprofile%\Documents\
set SRC=sample.txt
set DST=copied.txt

copy /Y %FOLDER%%SRC% %FOLDER%%DST%

endlocal
exit

練習問題

最後に確認テストに挑戦してみましょう。

テストはクライアント側で完結するため、サーバーにデータが送信されることはありません。

問題1

以下の選択肢のうち、copyコマンドの正しい使用例はどれでしょうか?

回答がサーバーに送信されることはありません
問題2

コマンドプロンプトで、「copy file1.txt file2.txt」と入力した場合、どのような操作が行われるでしょうか?

回答がサーバーに送信されることはありません
#PowerShell #コマンドプロンプト #バッチファイル