Win9x: COPY コマンドでファイルを結合する場合の注意点

Windows の COPY コマンドには、複数のファイルを結合する機能がある。
例えば次のようにすると、a.txt と b.txt の内容が結合され、c.txt として出力される。結合元は 3 つ以上でも OK。

copy /b a.txt + b.txt c.txt

ただし、Windows のバージョンによって、挙動に差があるようだ。具体的には、結合元のファイルがすべて 0 バイトだった場合。
Windows 2000/XP では、出力先 (上の例で言うと c.txt) に 0 バイトのファイルができる。しかし、Windows 95 では、ファイルが出力されず、「0 個のファイルをコピーしました」というシュールな返事が返ってくる。
分割したファイルを結合する場合なんかは問題にならないと思うけど、何かの作業を自動化するのに使ってるような場合だと、アテが外れて困ることもある。
追記: Windows 95 では、さらに、結合元の合計が 0 バイトの場合、結合先のファイルが削除されるようだ。上記の例で a.txt と b.txt がともに 0 バイトの場合、c.txt がすでに存在していても、削除されてしまう。

ちなみに

UNIX 系 OS と異なり、Windows では各コマンドが自前でワイルドパターンを解釈することになっている。そんなわけで、COPY コマンドではこんな書き方もできるらしい (ヘルプに載っていた例)。

copy /b *.txt + *.ref *.doc

この場合、同じ名前で拡張子の違うファイル同士が結合され、a.txt と a.ref から a.doc が、b.txt と b.ref から b.doc が……といった具合に、一気に処理される。