2013-02-05 50 views
6

ワイルドカード使用時のCOPYコマンドの動作がわかりません。DOS COPYコマンドでワイルドカードを使用すると、コピー先ファイルが破損する

私はmpt*.asmと呼ばれるC:\Sourceという単一のテキストファイルを持っています。それをC:\Destにコピーします。これはバッチスクリプトから必要とされ、私はmpt*.asmの正確な名前(例えばmpt001.asmかもしれません)がわかりません。宛先名は正確にmpt.asmでなければなりません。

私が使用している場合:

COPY C:\Source\mpt*.asm C:\Dest\mpt.asm 

ファイルファイルがコピーされますが、ファイルの末尾に追加余分な(0x1A)文字を持っています。

私が使用している場合:

COPY C:\Source\mpt*.asm C:\Dest\mpt.asm /B 

私は、この偽の文字を得ることはありません。

ワイルドカードを使用しない場合、私は偽の文字を取得しません。 COPYにバグがあるとは思われませんが、この動作は予期しないようです。

/Bを使用せずにこのコピーを行う方法はありますか?

答えて

5

これまで私はそれを見たことがありませんでしたが、私にとっては余分な矢印文字も追加しています。

代わりにxcopyを使用して問題を回避することができます。

echo f| xcopy C:\Source\mpt*.asm C:\Dest\mpt.asm 

あなたがcopy /?を読めばそれが(ワイルドカードまたはFILE1 + FILE2 +ファイル3形式を使用して)、ファイルの追加先のための1つのファイルを指定しますが、ソースのための複数のファイル するに

を言います。

destで1つのファイル名を使用し、ソースにワイルドカードを使用すると、余分な文字が追加されている可能性がありますが、何も追加していないため見れば分かります。

私は推測しているに過ぎません。

+0

これは、appendモードで 'copy'が働いているためです。追加の1A文字はDOSから来ます。以前はテキストファイルに対してEOFをマークするために必要でした。 '/ B'は問題を回避するバイナリファイルを指定します。 http://www.tech-archive.net/Archive/Win2000/microsoft.public.win2000.cmdprompt.admin/2009-08/msg00010.html – sourcejedi

関連する問題