【コマンドプロンプト】コピーコマンドを使いこなそう!

今回の記事では、コマンドプロンプトでコピーを行う際に必要なコマンドをまとめました。

コマンドプロンプトでファイルをコピーしたい
複数ファイルまとめてコピーするにはどうしたらいいの?
ディレクトリ構造までコピーできないかな?

という方へ向けて、

  • ファイルをコピーする方法
  • 複数ファイルをまとめてコピーする方法
  • フォルダやディレクトリ構造をコピーする方法
  • もしアクセス拒否された場合は

を紹介致します。

基礎的なコマンドですが、分かっているようで活用しきれていない使い方があるかもしれません!

ぜひ、おさらいも兼ねてお付き合いください。

目次

ファイルをコピーする方法

まずは基礎の基礎、ファイルをコピーするコマンドを使ってみましょう。

コピーを行うには、名前の通り「copy」コマンドを使います。

$copy コピー元ファイル名 コピー先ファイル名

このように使う事で、コピーが実行されます。

具体的な例として、test.txtファイルをtest_copy.txtという名前でコピーしてみましょう。

C:Usersusertest>dir /b
test.txt

今はまだtest.txtしかありませんね。

ここで以下を実行します。

C:Usersusertest>copy test.txt test_copy.txt
1 個のファイルをコピーしました。

「コピーしました」というメッセージを確認したので、再度ディレクトリを確認しましょう。

C:Usersusertest>dir /b
test.txt
test_copy.txt

新しくtest_copy.txtが増えていますね!

これでコピー完了です。

複数ファイルをまとめてコピーする方法

続いて、複数ファイルをまとめてコピーする方法を紹介します。

ワイルドカードを使ってまとめる方法

複数ファイルをまとめてコピーするには、ワイルドカードを使います。

ここでは、ワイルドカードの「*(アスタリスク)」を使って、複数ファイルをまとめてコピーします。

例として、以下のような構造のファイルがあります。

C:Usersusertest>tree /f
C:.
└─test
│ test1.txt
│ test2.txt
│ test3.txt
│
└─copy

ここで、test1, test2, test3をまとめてcopyフォルダへコピーします。

やり方は以下のようになります。

$copy test*.txt copy

実行結果:

C:Usersusertest>tree /f
C:.
│ test1.txt
│ test2.txt
│ test3.txt
│
└─copy
test1.txt
test2.txt
test3.txt

まとめてコピーができました。

ここでポイントとなるのが、「*」です。

「*」には、「何かしらの文字列が0個以上ある」事を意味しています。そのため、test1, test2, test3全てが該当するのです。

このようにして、複数ファイルをまとめてコピーの対象に指定することができます。また、コピー先をディレクトリ名にすることで、そのディレクトリ配下にコピーする事ができます。

ここでファイル名を指定すると、そののファイルにtest1, test2, test3の内容をつなげてコピーする事になりますので、覚えておきましょう。

「+」を使ってまとめる方法

もし一つのファイルに出力する事が目的の場合は、「+」でまとめる方法もあります。

方法はシンプルで、

$copy test1.txt+test2.txt+test3.txt copy

というようにします。

実行すると各ファイルの中身が結合されたtext1.txtというファイルが、copy配下に出力されます。

ワイルドカードだと該当するファイル全てが対象となりますが、「+」では一つずつファイルを選択できるという点がポイントです。

フォルダやディレクトリ構造をコピーする方法

今度は、フォルダやディレクトリ構造をコピーする方法を紹介します。

ディレクトリまでコピー対象とする場合は、「xcopy」コマンドを使います。

「xcopy」はファイルやディレクトリをコピーする際に使えるコマンドです。

$xcopy コピー元ディレクトリ名 コピー先ディレクトリ名 (オプション)

このようにして、コピーができます。

「copy」と一緒ですね。

違いは主に3つです。

  • xcopyはオプションを付けるとファイルだけでなくディレクトリのコピーも出来る
  • xcopyは複数ファイルを結合させてコピーすることができない
  • xcopyは/excludeを付ける事で、複数ファイルをコピーする際に対象外ファイルを指定できる

それでは、実際に使ってみましょう。

以下のような構造のディレクトリがあります。

C:Usersusertest>tree /f
C:.
└─dir1
test1.txt
test2.txt
test3.txt

ここで、「xcopy」をします。

$xcopy dir1 dir2

実行結果:

C:Usersusertest>xcopy dir1 dir2
dir2 は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)? D
dir1test1.txt
dir1test2.txt
dir1test3.txt
3 個のファイルをコピーしました

出力先がファイルかディレクトリか聞かれたので、ディレクトリとして指定しました。

実行後のディレクトリ構造:

C:Usersusertest>tree /f
C:.
├─dir1
│ test1.txt
│ test2.txt
│ test3.txt
│
└─dir2
test1.txt
test2.txt
test3.txt

ディレクトリが複製されましたね!また、「xcopy」はオプションを付ける事で様々なコピーの仕方ができます。

以下リストを参考にしてオプションも活用してください。

オプション意味備考
/eサブディレクトリ含めてコピーする空のサブディレクトリもコピー対象とする
/sサブディレクトリも含めてコピーする空のサブディレクトリは対象外とする
/tディレクトリ構造をコピーする空のディレクトリは対象外とする
(対象としたい場合は/t /eとする)
/i コピー先のディレクトリが存在していない場合は新しくディレクトリを作成する
/exclude除外ファイルを指定できる「/exclude ファイル名」とする事で、そのファイルに書かれたファイル(ディレクトリ)をコピー対象から除外する

※こちらのリストはよく使われる、ごく一部のオプションになります。

もしアクセス拒否された場合は

もしコピーをしようとした際に「アクセスが拒否されました」と表示された場合は、権限がない可能性が考えられます

この場合、コマンドプロンプトを管理者権限で開く必要があります。

コマンドプロンプトを管理者で開くには、コマンドプロンプトを開く際に「右クリック→管理者として実行」とすることで管理者権限で操作できます。

ただ、システムの安全の為にこのようになっているので、よく注意して操作してください。

まとめ

いかがでしたでしょうか?

今回の記事では、

  • 複数ファイルをまとめてコピーする方法
  • ファイルをコピーする方法
  • フォルダやディレクトリ構造をコピーする方法
  • もしアクセス拒否された場合は

について解説致しました。コマンドプロンプトでコピーができると、マウス操作で手作業するよりずっと効率的です。

ここで使い方の基礎を覚えて、是非活用してください!

 

この記事を書いた人

1991年生まれ。双子座。
理系大学で認証システムを学んだ後、アプリ開発者となる。
新しく学ぶ人に寄り添った記事を心がけて執筆します。
芸術が好き。いつか猫と暮らすのが夢。

目次