今回の記事では、コマンドプロンプトでコピーを行う際に必要なコマンドをまとめました。
複数ファイルまとめてコピーするにはどうしたらいいの?
ディレクトリ構造までコピーできないかな?
という方へ向けて、
- ファイルをコピーする方法
- 複数ファイルをまとめてコピーする方法
- フォルダやディレクトリ構造をコピーする方法
- もしアクセス拒否された場合は
を紹介致します。
なお、本記事を読む前にコマンドプロンプトをおさらいしておきたい人は、次の記事を参考にしてください。
→ コマンドプロンプトとは?できることや使い方を初心者向けに解説
ファイルをコピーする方法
まずは基礎の基礎、ファイルをコピーするコマンドを使ってみましょう。
コピーを行うには、名前の通り「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 ファイル名」とする事で、そのファイルに書かれたファイル(ディレクトリ)をコピー対象から除外する |
※こちらのリストはよく使われる、ごく一部のオプションになります。
もしアクセス拒否された場合は
もしコピーをしようとした際に「アクセスが拒否されました」と表示された場合は、権限がない可能性が考えられます。
この場合、コマンドプロンプトを管理者権限で開く必要があります。
コマンドプロンプトを管理者で開くには、コマンドプロンプトを開く際に「右クリック→管理者として実行」とすることで管理者権限で操作できます。
ただ、システムの安全の為にこのようになっているので、よく注意して操作してください。
まとめ
いかがでしたでしょうか?
今回の記事では、
- 複数ファイルをまとめてコピーする方法
- ファイルをコピーする方法
- フォルダやディレクトリ構造をコピーする方法
- もしアクセス拒否された場合は
について解説致しました。コマンドプロンプトでコピーができると、マウス操作で手作業するよりずっと効率的です。
ここで使い方の基礎を覚えて、是非活用してください!