使用带有DOS的通配符COPY命令会破坏目标文件

时间:2013-02-05 09:42:20

标签: copy dos wildcard

使用通配符时,我不明白COPY命令的行为。

我在C:\Source中有一个名为mpt*.asm的单个文本文件,我想将其复制到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的情况下执行此副本?

1 个答案:

答案 0 :(得分:6)

我之前从未见过,但它确实为我添加了额外的箭头字符。

您可以使用xcopy来解决此问题。

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

如果您阅读copy /?,则说明

  

要附加文件,请为目标指定单个文件,但指定多个文件   for source(使用通配符或file1 + file2 + file3格式)。

因此,通过使用单个文件名作为dest,并在源中使用通配符,它​​可以将其解释为附加,这可能是额外字符的用途,但是因为您没有附加任何您可以看到的内容它

我只是猜测,但这可以解释它。