2012-09-09 8 views
12

Ich verwende Windows 7 Ultimate x64, aber meine Erfahrung stammt aus DOS 3.0.Wie füge ich eine Datei mit dem COPY-Befehl an

Seit wie DOS 3.1 Sie habe in der Lage, eine Datei in ein anderes mit dieser Verwendung des COPY-Befehl anhängen:

COPY FILE1+FILE2=FILE1 

die Notwendigkeit einer vorübergehenden FILE3 machen unnötig.

Es war ein sehr bequemer Befehl seit wann immer Sie ein neues Programm hinzugefügt haben, mussten Sie oft Ihre CONFIG.SYS und AUTOEXEC.BAT Dateien aktualisieren.

Früher war es auch wichtig, die richtige Reihenfolge zu finden, sonst würde man mit einer leeren FILE1 enden.

Aber heute, als ich versuchte, dass es FILE1 unberührt gelassen, und wenn ich die Reihenfolge umgekehrt, es (verständlicherweise) gemacht FILE1 eine Kopie FILE2.

Weiß jemand, ob es durch eine andere Methode ersetzt wurde, und wann diese Änderung passiert ist?

EDIT:

Ich habe mehr Tests zu tun, und seltsam, obwohl der obige Code wird nicht funktionieren, können Sie immer noch von der Konsole kopieren Schweller und wie diese an eine vorhandene Datei anhängen:

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

Ich frage mich, ob meine Version von Windows irgendwie vermasselt ist. Kann irgendein Körper meine Ergebnisse wiederholen?

EDIT:

Es funktioniert auf 95/98/ME/2000/XP/XP-Modus/7 Professional x64/x64 8. Also stelle ich mir vor, dass es kein 7 Ultimate x64 Problem ist, sondern eher ein Problem mit meiner Maschine.

* seufz *

EDIT:

Das letzte Mal bearbeitet, das verspreche ich. :)

Es war kein Problem mit meiner Maschine, es war ein Problem mit File1. Offenbar, wenn ich zum ersten Mal File2 zu angefügt, die [STRG] + Z (EOF-Zeichen) wurde nie überschrieben, so dass die Datei wie folgt aussehen:

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

du dich aus auf dem mit dem folgenden Versuch duplizieren Eingabeaufforderung.(Wo^Z ist das Zeichen [STRG] + Z)

an der Eingabeaufforderung ein:

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 

Sie werden sehen:

file1

File One 

file2

File Two 
File Three 

Sie können type file2 >> file1 oder verwenden Sie fast jede andere Methode zum Verketten von Dateien, und wenn Sie file1 eingeben, scheint es nur noch File One zu enthalten. ABER wenn Sie verwenden, um die Datei zu analysieren, wird es Ihnen zeigen, was WIRKLICH vor sich geht. In diesem Fall Typ:

FIND " " file1 

Und Sie werden mit belohnt:

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

Antwort

23

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 
+0

Hmm. Das ist schlecht für mich. –

+0

Was bekommst du, wenn du foo + bar = foo kopierst? – nikos1993pl

+1

Ich bekomme die Originalversion von foo. –

4

Was type file2 >> file1

+5

Das wird nicht mit Binärdateien funktionieren. –

+0

@JamesK Du hast nie "binär" in deiner Frage angegeben. Was genau willst du dann machen? –

+0

@EitanT - Ich frage mich nur, ob diese Funktionalität von Windows verschwunden ist, weil es effizienter ist als jede andere eingebaute Methode der Verkettung von Dateien, Binär-oder Text. –

1

Haben Sie versucht, copy /b file1 + file2 file1

+0

Ja. Ich habe jede Iteration ausprobiert, die ich mir vorstellen kann, und jede, die mir begegnet ist. –

1

copy /b input1 + input2 output
del input1
ren output input1
Vielleicht das? : P

+0

Sicher, sogar 'copy/b file1 + file2 file3'' move file3 file1' funktioniert. Ich versuche nicht, die Funktionalität zu ersetzen, ich versuche herauszufinden, ob sie aus dem COPY-Befehl (und wann) entfernt wurde oder ob mein Computer durcheinander ist. –

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 
2

stellen Sie sicher, mit frischen Dateien starten Sie versucht, nie über zu kopieren.
Ich fand nur, dass auf meinem (XP sp3) copy a+b a ohne /b anhängt 1A (SUB) bis zum Ende der Datei, die alles macht, nachdem er vom Ausgang der type verschwinden (aber more es zeigen). Copy /b a+b a funktioniert.

+0

Ja, ich konnte bestätigen, dass es unter XP funktioniert. Nun, XP-Modus sowieso. –

2
@echo off 

cls 

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

exit 
+0

bitte erklären Sie es richtig ... – Shivaay

-2
  1. alle Dateien im selben Ordner.
  2. copy *.* ´target.ext'
  3. ????
  4. Gewinn!
1

Warten! Es gibt mehr! (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 

Abgesehen von der „1 Datei (en) kopiert“ Benachrichtigung, es mag nur keine Dateien mit lustigen Namen.

2

Antwort: „Wie anfügen ich in eine Datei den COPY-Befehl“

WARNUNG: Wenn Sie eine Liste von Dateien haben Sie wollen über COPY-Befehl kombinieren, ist es einfach, aber kann möglicherweise zerstöre deine Dateien.

Dangerous Way:

copy /b one + two + three - wird anhängen Inhalte von "zwei" und "drei" in der Datei "Eins". So hat das Original "Eins" nun den Inhalt von 3 Dateien in der richtigen Reihenfolge. Wenn während des Kopiervorgangs Probleme auftreten, haben Sie keine Möglichkeit, den ursprünglichen "Eins" wiederherzustellen, da dieser beschädigt ist und Ihre Daten im Wesentlichen verloren gehen würden. Es gibt fast nie einen Grund, diesen Weg zu gehen.

sichere Weg:

copy /b one + two new_filename-2 Dateien kombinieren (Sie können mehr als zwei natürlich Liste), eine new_filename Erstellung mit „eins“ und „zwei“ in der richtigen Reihenfolge, und verlassen Originaldateien intakt.

+0

Für mich ist dies die beste Lösung bisher. Ich möchte eine Textdatei an eine andere Datei anhängen. Dies ist die einfachste Methode: copy destin_file new_file hängt neue_datei an destin_file an –

+0

@DougNull Das wird nicht funktionieren. Wenn Sie nur 2 Dateien haben: * copy File_1 File2 * Was passiert, wenn copy nicht anhängen wird, wird eine Kopie von File1 erstellt und File2 genannt. Wenn File2 existiert, wird es überschrieben. Ich habe meine Antwort auf das Zwei-Datei-Szenario aktualisiert – Emil

Verwandte Themen