Programming Field

Diskcopy - DOS/コマンドプロンプト コマンド一覧

[MS-DOS, およびWindows 8.1までのNT系] フロッピーディスク全体の内容を別のディスクにコピーします。

構文

diskcopy[.com] [<drive-letter1>: [<drive-letter2>:]] [/V] [/1] [/M]
<drive-letter1>: フロッピーディスクをコピーする際に利用するコピー元のフロッピーディスクドライブを指定します(ドライブ文字と「:」が必要です)。省略した場合は現在のドライブを利用します。
<drive-letter2>: フロッピーディスクのコピー先として用いるドライブを指定します。省略した場合は現在のドライブを利用します。また、<drive-letter2>: (省略した場合現在のドライブ)が <drive-letter1>: と同じドライブである場合は、途中で(必要に応じて何度か)ディスクの入れ替えを要求するプロンプトが表示されます。
/V コピー時にディスクに正確に書き込まれたかどうかを都度チェックします。このスイッチを指定すると処理時間が増加します。
/1 [MS-DOS] ディスクが両面ディスクであっても片面のみをコピーします。
/M [MS-DOS] ディスクをコピーする際一時的にデータをキープする場所としてコンベンショナルメモリのみを使用します。このオプションを指定しない場合環境変数TEMPの場所に一時ファイルを作成するため、TEMPが指すディレクトリのドライブに一定の空き容量が必要となりますが、コンベンショナルメモリのみを使用する場合は一時的にキープできるデータサイズの制約から、コピー元とコピー先のドライブが同一である場合ディスクの入れ替え頻度が上がる場合があります。

解説

フロッピーディスクをトラック単位でコピーします。ドライブ指定にフロッピーディスク以外のドライブを指定することはできません。CopyXcopyを用いる場合と異なり、ファイルが存在する(ディスク内の)位置をそのままに、ブートに使用するファイルなども含めて丸ごとコピーを行います。そのため、コピー元のディスクが起動ディスクであった場合はコピー先のディスクも起動ディスクとなります。

[Windows 10 以降] フロッピーディスクのサポートが打ち切られたためか、Diskcopyプログラムが存在しません。

コピー先ディスクがフォーマットされていない場合は、コピー元ディスクと同じフォーマットでディスクのフォーマットを行います。また、コピー先ディスクではフォーマット済みか否かに関係なく新たなボリュームシリアル番号が作成されます。なお、コピー先ディスクがコピー元ディスクより容量が小さい場合はコピーが行われず失敗となります。

[MS-DOS] コピー元とコピー先のドライブが同一である場合も、途中でディスクの入れ替えを行いながらディスクをコピーすることができます。この場合、環境変数TEMPの場所に一時ファイルを作成(/M がある場合はコンベンショナルメモリのみを使用)してコピーを行うため、キープ先の容量が不足気味の場合その分しかデータをキープできないことでディスクの交換頻度が上がる場合があります。交換頻度を下げたい場合は空き容量の大きいドライブ内のディレクトリをTEMPに指定するようにしてください。

[Windows NT系] コピー元とコピー先のドライブが同一である場合に使用する一時キープ先は現在のドライブとなります。そのため、Diskcopy実行前にコピーに使用するドライブ以外の場所に現在のドライブを移動してからDiskcopyを実行します。

ディスクを丸ごとコピーするため、コピー元ディスクで断片化が発生している場合はコピー先ディスクでも同じ断片化が起きている状態になります。断片化を回避するにはDiskcopyではなくCopyXcopyを使用してください(ただしファイル配置の関係上、コピー元が起動ディスクであってもコピー先が起動ディスクにならない可能性があります)。

Diskcopyは終了コードを返すため、バッチファイルにおいてIf Errorlevelでの判定が可能です。終了コードは以下の通りです。

コード意味
0コピーは正常に終了しました。
1コピー中に致命的ではないものの読み取り・書き込みエラーが発生しました。
2コピー処理中に Ctrl+C が入力され処理が中止されました。
3回復不能なエラー(致命的なハードに関するエラーなど)が発生しました。
4初期化処理中にエラーが発生しました。

C:
diskcopy A: A:

Aドライブのみを用いてフロッピーディスクのコピーを行います。途中でディスクの入れ替えが必要となります。

[Windows NT系] 一時的にデータをキープするため、1行目のようなドライブ移動が必要になります。