如何使用COPY命令附加到文件

时间:2012-09-09 20:39:04

标签: windows batch-file cmd windows-7-x64

我正在运行Windows 7 Ultimate x64,但我的经验可以追溯到DOS 3.0。

因为像DOS 3.1一样,你可以使用COPY命令将文件附加到另一个文件:

COPY FILE1+FILE2=FILE1

不需要临时FILE3。

这是一个非常方便的命令,因为每当您添加新程序时,您经常需要更新CONFIG.SYSAUTOEXEC.BAT文件。

以前的订单也是重要的,否则你最终会得到一个空的FILE1。

但是今天当我尝试时,它使FILE1保持不变,当我颠倒顺序时,它(可以理解)将FILE1复制为FILE2

是否有人知道它是否已被其他方法取代,何时发生了这种变化?

修改

我一直在做更多的测试,奇怪的是即使上面的代码不起作用,你仍然可以从控制台复制并将其附加到这样的现有文件:

copy file1+con=file1
Type some text to append to file1
^Z ([CTRL]+Z the End Of File character)

我想知道我的Windows版本是否以某种方式搞砸了。任何人都可以复制我的发现吗?

修改

适用于95/98 / ME / 2000 / XP / XP Mode / 7 Professional x64 / 8 x64。所以我想这不是7 Ultimate x64问题,而是我机器的问题。

* 叹气*

修改

最后编辑,我保证。 :)

这不是我的机器的问题,这是File1的一个问题。显然当我第一次将File2添加到它时,[CTRL] + Z(EOF字符)从未被覆盖,导致文件看起来像这样:

Original Data
Original Data
[EOF]
Appended Data
Appended Data
Appended Data

您可以在命令提示符处使用以下实验自行复制此项。 (其中^ Z是字符[CTRL] + Z)

在命令提示符下键入:

copy con file1
File One
^Z^Z

copy con file2
File Two
^Z

copy con file3
File Three
^Z

copy file1+file2=file1

copy file2+file3=file2

TYPE file1
TYPE file2

你会看到:

file1

File One

file2

File Two
File Three

您可以type file2 >> file1或使用几乎任何其他连接文件的方法,当您输入file1时,它仍然只会包含File One。但是如果你使用FIND "searchterm" file来解析文件,它会告诉你真正发生了什么。在这种情况下输入:

FIND " " file1

你会得到奖励:

---------- FILE1
File One
→File Two

11 个答案:

答案 0 :(得分:29)

Windows 8 x86:

Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Users\Nikos>echo foo>file1

C:\Users\Nikos>echo bar>file2

C:\Users\Nikos>copy /b file1 + file2 file1
file1
file2
        1 file(s) copied.

C:\Users\Nikos>type file1
foo
bar

答案 1 :(得分:4)

type file2 >> file1

怎么样?

答案 2 :(得分:2)

确保您从未尝试过的新文件开始 我刚发现在我的(XP sp3)copy a+b a上没有/b1ASUB)追加到文件的末尾,这使得它从{的输出后消失{1}}(但type会显示)。 more有效。

答案 3 :(得分:2)

@echo off

cls

type "file2.txt" >> "file1.txt"

exit

答案 4 :(得分:2)

回答:“如何使用COPY命令附加到文件

警告:如果您希望通过COPY命令合并文件列表,这很简单,但可能会破坏您的文件。

危险的方式

e - 会将“two”和“three”的内容追加到文件“one”中。因此,原始的“one”现在具有正确顺序的3个文件的内容。如果在复制过程中出现问题,你就无法恢复原来的“一”,因为它会被破坏而你的数据基本上会丢失。用这种方式几乎没有理由。

安全的方式

copy /b one + two + three - 将合并2个文件(当然可以列出两个以上),按正确的顺序创建一个包含“one”和“two”的new_filename,并保留原始文件。

答案 5 :(得分:1)

您是否尝试过copy /b file1 + file2 file1

答案 6 :(得分:1)

copy /b input1 + input2 output
del input1
ren output input1
也许这个? :P

答案 7 :(得分:1)

C:\Users\Nikos>type file1
foo
bar

C:\Users\Nikos>copy file1+con=file1
file1
con
ihdui
ohisd
^Z
        1 file(s) copied.

C:\Users\Nikos>type file1
foo
bar
ihdui
ohisd

答案 8 :(得分:1)

等待!还有更多! (Win7 Pro)

>ver

Microsoft Windows [Version 6.1.7601]

>copy file.a.txt + file.b.txt file.ab.txt
file.a.txt
1 file(s) copied

>copy fileA.txt + fileB.txt fileAB.txt
fileA.txt
fileB.txt
1 files(s) copied

不要复制" 1文件"通知,它只是不喜欢有趣名字的文件。

答案 9 :(得分:0)

要复制到二进制文件...

将所有文件放在同一文件夹中,例如G:\Files

g:
cd Files
copy /B *.* TargetFilename.ext

.ext是所需文件的类型

答案 10 :(得分:-2)

  1. 将所有文件放在同一个文件夹中。
  2. copy *.* ´target.ext'
  3. ????
  4. 利润!