Windowsのcopyは、コマンドプロンプト(cmd.exe)でファイルを複製するコマンドです。基本は「copy コピー元 コピー先」。空白を含むパスは引用符で囲み、同名ファイルを上書きする前に保存先を確認します。フォルダー階層全体のコピーには別のコマンドを使います。
まず1ファイルをコピーする
copy /B /V /-Y "C:\Lab\CopySource\manual.txt" "C:\Lab\CopyTarget\manual.txt"
この例では、コピー元ファイルと保存先フォルダーが既にあることを前提とします。/Bはバイナリとして扱う指定、/Vは書き込みの確認、/-Yは同名の保存先がある場合に上書き確認を出す指定です。元ファイルは残りますが、上書きした保存先の旧内容は自動保存されません。必要な旧ファイルは別名で控えてください。
PowerShellのcopyは別コマンドの別名として扱われるため、ここで示すオプションはcmd.exeで使用します。保存先をフォルダーとして指定する場合は、そのフォルダーが実在することを確認します。存在しないフォルダー名を指定すると、意図せずその名前のファイルとして作られる場合があります。
オプション一覧
| option | 意味 | 使用上の境界 |
|---|---|---|
| /A | ASCII textとして扱い、EOF文字を解釈する | 通常の文書・binary copyでは使わない |
| /B | binaryとして扱う | 通常の一件copyの明示値 |
| /D | EFS暗号化元を復号してdestinationへ保存できるようにする | 機密性とdestination ACLを承認してから使う |
| /V | 書込み後の検証を有効にする | SHA-256照合の代替にはしない |
| /N | 利用可能なら短いfile名を使う | 8.3名が必要な互換用途だけ |
| /Y | 既存destinationを確認なしで置換する | 初回例では使用しない |
| /-Y | 既存destinationの置換前に確認する | 対話検証で採用する |
| /Z | network copyを再開可能modeで行う | UNC等の中断し得る転送で使用する |
| /? | local helpを表示する | OS版ごとの差を実機で確認する |
上書き確認:/Yと/-Y
/Yは確認なしで既存ファイルを置き換え、/-Yは確認を求めます。環境変数COPYCMDやバッチ実行で既定の確認動作が変わるため、対話で確かめる例では/-Yを明示しています。大量コピーに/Yを追加する前に対象と保存先、復元用の控えを確認してください。
ネットワーク上のファイルをコピーする
copy /B /V /Z /-Y "\\fileserver\share\manual.txt" "C:\Lab\CopyTarget\manual-from-share.txt"
/Zはネットワークコピーの再開可能モードです。接続先の名前とアクセス権、空き容量を確認してください。再開可能という機能があっても、処理が終わったことと内容の正しさは確認が必要です。
複数ファイルのコピーと連結を区別する
複数の入力ファイルに対して保存先を1つのファイル名にすると、単なる個別コピーではなく内容を連結する構文になります。ワイルドカードや「+」を含む例は、元ファイルを残した検証用フォルダーで試してください。
copy /B /-Y "C:\Lab\part1.txt" + "C:\Lab\part2.txt" "C:\Lab\combined.txt"
これはバイト列を連結する例です。改行を自動で補うわけではなく、文字コードも変換しません。PDF、Office文書、動画などを連結しても、有効な1ファイルに統合できるとは限りません。入力と出力に同じファイル名を使わないでください。
/Aと/Bの違い
/AはASCIIテキストの終端文字を扱い、/Bはファイル内のバイトを扱います。/Aを入力側・出力側のどちらへ置くかで終端処理が異なります。通常の単純コピーでは/Bが既定ですが、連結時は前提が変わるため、例では/Bを明示しています。
コピー後に内容を確認する
処理件数とエラーを確認し、コピー先を開けるか確かめます。重要なファイルはコピー前後のSHA-256も比較できます。次の2つの出力のハッシュ値が一致するか確認してください。検証中に元ファイルが変わった場合は同一時点の比較になりません。
certutil -hashfile "C:\Lab\CopySource\manual.txt" SHA256
certutil -hashfile "C:\Lab\CopyTarget\manual.txt" SHA256
/Vは書き込み確認であり、業務上必要なファイルが選ばれていることやアクセス権まで保証するものではありません。アクセス拒否、容量不足、ファイル使用中などのエラーを、コピー成功と見なさないでください。
copyで扱わない方がよい用途
サブフォルダーを含む階層全体、ACLなど属性の保持、複雑な再試行条件が必要なら、xcopyやrobocopyの要件を確認します。copyの/Dは暗号化されたコピー元を復号した状態で保存できる指定なので、機密性を変えてよい用途以外では追加しません。
まとめ
まずコピー元と保存先を明示し、上書き確認を有効にして1件で試します。単純コピーと連結を区別し、必要なら元・先の内容を比較してください。失敗時に管理者実行や上書き指定を闇雲に足すのではなく、パス・権限・容量・用途を確認します。
公式情報
Microsoft Learn:copyの構文と各オプション、certutilのハッシュ確認。利用環境のcopy /?でも構文を確認できます。



コメント