2011年8月31日水曜日

COPY = ファイルをコピーする - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。ファイルとフォルダー関連
○Windows XP
指定したファイルをコピーします。

o 同じフォルダーにある複数のファイルを、コマンド1つでコピーする事も出来ます。
o 複数のファイルを連結して、1つのファイルにコピーする事も出来ます。但し、癖があります。
o フォルダー毎コピーしたい時は、XCOPY コマンドを使います。


**** 書式
--------
copy [ オプション ] コピー元ファイル名など [ /A ][ /B ] コピー先ファイル名など [ /A ][ /B ]
もしくは
copy [ オプション ] 連結コピーするファイル名 [ /A ][ /B ] [ + 連結コピーするファイル名 [ /A ][ /B ]] コピー先ファイル名 [ /A ][ /B ]
--------

o コマンド名は、大文字小文字のどちらでも大丈夫です。
o オプション = 下記のオプションを、半角空白区切りで並べます。
    + オプションを省略した時は、次のように動きます。
        + ファイルを1対1でコピーする時は、/B 扱いになります。
        + 複数のファイルを連結して1ファイルにする時は、/A 扱いになります。
COPY コマンドのオプション一覧
名前意味
/A昔の ASCII テキストファイル形式でコピーします。
主に複数の「Unicode」形式ファイルを連結してコピーする時に使います。
連結コピーする時は、既定値がこのモードになります。不要な時は /B
/Bファイルの内容をそのままコピーします。
Bは、バイナリファイルのBです。
ファイルを 1対1でコピーする時は、このモードが既定値です。
/D何も起こらないみたいです。(= Windows XPの場合)
ヘルプの説明では、コピー先のファイルについて、暗号化を解除します。
/Vコピー先のファイルについて、正しくコピーされたかどうか検査します。
/Nファイル名を、なるべく、MS-DOS形式の短い名前にします。
MS-DOS形式 = ファイル名が「半角8文字以下 + ピリオド + 半角3文字以下」の形式です。
短く出来ない時は、長いファイル名のままコピーします。
/Y上書きする時に、確認メッセージを表示しません。
/Y や/-Yの指定が無い時は、環境変数 COPYCMD の値に依存します。
    + 環境変数 COPYCMD の値が「/Y」もしくは「/y」の時、上書きする時に確認メッセージを表示しません。
    + 環境変数 COPYCMD の値が上記以外、もしくは設定されていない時は、確認メッセージを表示します。
/-Y上書きする時に、確認メッセージを表示します。
/Y や/-Yの指定が無い時は、環境変数 COPYCMD の値に依存します。
/Zネットワークファイルを再起動可能モードでコピーします。
= コピー途中でネットワークが一時的に切断した時に、コピーを再開するみたいです。
このオプションを付けた時、「100% コピー終了」のような表示が増えます。
o コピー元ファイル名など
    + ファイルを指定する場合、ワイルドカード(「*」や「?」)を使用出来ます。
    + フォルダーを指定すると、その下にあるファイルを連結コピーします。
        + 内容をつなげて、1つのファイルにします。
    + ファイルのパスの区切り文字は「\」のみです。
        + このコマンドでは、UNIXの区切り文字「/」を使う事は出来ません。
o コピー先ファイル名など
    + 既存のフォルダーを指定すると、そのフォルダーにファイルをコピーします。
    + ファイルを指定すると、そのファイルにコピーします。
    + 連結コピーする時は、/A が初期値になりますので、必要に応じて /B を指定する等します。
    + ファイルのパスの区切り文字は「\」のみです。
        + このコマンドでは、UNIXの区切り文字「/」を使う事は出来ません。
o 連結コピーするファイル名
    + コピーしたいファイル名です。
    + 「+」を使って、複数のファイルを連結する事が出来ます。
        + コマンドに書いた順に、ファイルを連結します。
        + 「+」指定時、/A が初期値になりますので、必要に応じて /B を指定するなどします。
    + ワイルドカード(「*」や「?」)を使用出来ます。
    + 「+」で連結する時は、フォルダーは指定出来ません。
    + ファイルのパスの区切り文字は「\」のみです。
        + このコマンドでは、UNIXの区切り文字「/」を使う事は出来ません。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功
    + ファイルの上書きで No を選択した時も、成功になります。
o 1 = 失敗。ファイルのアクセスエラー
    + 「指定されたファイルが見つかりません。」 = 指定したファイルが無いか、「+」指定が抜けています。
    + 「指定されたドライブが見つかりません。」 = ファイル名のパスに書いたドライブ名が間違っています。
    + 「ネットワーク パスが見つかりません。」 = ファイル名のパスに書いたネットワークドライブ名が間違っています。
    + 「コマンドの構文が誤っています。」 = おそらく、オプションの書き方が間違っています。
        + もしくは、ファイルのパスの区切り文字は「\」を使って下さい。


**** 使用例
o 1対1でファイルをコピー
--------
copy ネギ.txt ミクさんのネギ.txt

copy /y ネギ*.txt ミクさんフォルダー
copy /y ネギフォルダー ミクさんフォルダー
--------

    + コマンド名は、大文字で書く事も出来ます。
    + /Y オプションを付けると、上書きの時にも質問しません。

o 複数のファイルを1つのファイルに連結コピー
--------
copy /b ネギ1.txt + ネギ2.txt ミクさんのネギ.txt
copy /b c:\ネギフォルダー\ネギ*.txt ミクさんのネギ.txt

rem # Unicode形式で保存されている時は
copy ネギ1_Unicode.txt + ネギ2_Unicode.txt ミクさんのネギ_Unicode.txt
--------

    + 連結コピーする時は、/A オプションが既定になります。
    + /Aは、Unicode形式(= UTF-16 LE BOM付き)で保存されたファイルの連結の時に便利です。
    + 自動化する時は、/Y オプション追加。付けると、上書きの時に質問で止まりません。


**** 機能
o 指定したファイルをコピーします。
o 同じフォルダーにある複数のファイルをコピーする事も出来ます。
o 複数のファイルを連結して、1つのファイルにコピーする事も出来ます。但し、癖があります。
    +この時は、/A が既定になります。
    + 1対1でコピーする時、/B が既定になります。
    + これらの動作を変更したい時は、オプションを指定します。

** COPYコマンドの対象にならないファイル
o COPYコマンドは、次の属性を持つファイルを、検索対象から「除外」します。
    + システムファイル属性
    + 隠しファイル属性
o これらのファイルの属性変更は、ATTRIB コマンドで行う事が出来ます。
o また、隠しファイル属性は、ファイルのプロパティで設定する事も出来ます。


**** メモ
o フォルダーごとコピーしたい時は、XCOPY コマンドを使います。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼Windowsコマンド。ファイルとフォルダー関連▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    ▼目次
    > COPYコマンドの /Aと/Bの意味
    DISKCOPY = フロッピーディスクの内容を別のフロッピーディスクにコピーする。途中に質問あり版
    MOVE = ファイルを移動する