18

我正在运行 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
4

11 回答 11

32

视窗 8 x86:

微软视窗 [版本 6.2.9200]
(c) 2012 年微软公司。版权所有。

C:\Users\Nikos>echo foo>file1

C:\Users\Nikos>回显栏>file2

C:\Users\Nikos>copy /b file1 + file2 file1
文件 1
文件2
        已复制 1 个文件。

C:\Users\Nikos>输入文件1
富
酒吧
于 2012-09-09T21:10:43.603 回答
5

关于什么type file2 >> file1

于 2012-09-09T20:44:37.087 回答
4

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

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

危险的方式

copy /b one + two + three-- 将 "two" 和 "three" 的内容附加到文件 "one" 。所以原来的“一”现在有3个文件的内容,顺序正确。如果在复制过程中出现问题,您将无法恢复原始“一个”,因为它会损坏并且您的数据基本上会丢失。几乎没有理由使用这种方式。

安全方式

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

于 2017-05-14T09:53:05.617 回答
2

确保从从未尝试复制的新文件开始。
我刚刚发现在我的(XP sp3)上copy a+b a没有/b附加1ASUB)到文件末尾,这使得它从输出中消失后的任何内容type(但more会显示它)。Copy /b a+b a作品。

于 2012-09-09T22:18:41.680 回答
2
@echo off

cls

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

exit
于 2013-09-03T14:06:42.853 回答
1

你试过了吗copy /b file1 + file2 file1

于 2012-09-09T20:59:50.040 回答
1

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

于 2012-09-09T21:06:02.390 回答
1
C:\Users\Nikos>输入文件1
富
酒吧

C:\Users\Nikos>复制文件1+con=file1
文件 1
骗局
伊堆
奥希德
^Z
        已复制 1 个文件。

C:\Users\Nikos>输入文件1
富
酒吧
伊堆
奥希德
于 2012-09-09T21:15:45.890 回答
1

等待!还有更多!(Win7 专业版)

>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 个文件”通知不谈,它只是不喜欢名称有趣的文件。

于 2015-08-28T05:25:10.377 回答
1

复制到二进制文件...

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

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

并且.ext是所需的文件类型

于 2019-01-23T11:03:33.410 回答
-2
  1. 将所有文件放在同一个文件夹中。
  2. copy *.* ´target.ext'
  3. ???
  4. 利润!
于 2014-10-17T15:14:49.757 回答