webentwicklung-frage-antwort-db.com.de

Wie füge ich mit dem Befehl COPY eine Datei an?

Ich verwende Windows 7 Ultimate x64, aber meine Erfahrung geht zurück auf DOS 3.0.

Seit DOS 3.1 konnten Sie mit dem Befehl COPY eine Datei an eine andere anhängen:

COPY FILE1+FILE2=FILE1

Die Notwendigkeit einer temporären FILE3 ist überflüssig.

Dies war ein sehr praktischer Befehl, denn wenn Sie ein neues Programm hinzufügten, mussten Sie häufig Ihre CONFIG.SYS- und AUTOEXEC.BAT-Dateien aktualisieren.

Früher war es auch wichtig, die richtige Bestellung zu erhalten, ansonsten würde man eine leere FILE1 erhalten.

Aber heute, als ich das ausprobierte, blieb FILE1 unberührt, und als ich die Bestellung stornierte, machte FILE1 (verständlicherweise) eine Kopie von FILE2.

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

BEARBEITEN:

Ich habe schon mehr getestet, und obwohl der obige Code nicht funktioniert, können Sie trotzdem von der Konsole aus kopieren und 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 Windows-Version irgendwie durcheinander ist. Kann irgendein Körper meine Ergebnisse replizieren?

BEARBEITEN:

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

* Seufz *

BEARBEITEN:

Letzte Bearbeitung, versprochen. :)

Es war kein Problem mit meinem Rechner, es war ein Problem mit File1. Anscheinend wurde beim ersten Anhängen von File2 die [STRG] + Z (EOF-Zeichen) nie überschrieben, wodurch die Datei folgendermaßen aussah:

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

Sie können dies mit dem folgenden Experiment unter der Eingabeaufforderung selbst kopieren. (Wobei ^ Z das Zeichen [CTRL] + Z ist)

Geben Sie unter dem Befehl Eingabeaufforderung Folgendes 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

Du wirst sehen:

file1

File One

file2

File Two
File Three

Sie können type file2 >> file1 oder fast jede andere Methode zum Verketten von Dateien verwenden, und wenn Sie file1 eingeben, scheint diese nur noch File One zu enthalten. ABER wenn Sie FIND "searchterm" file verwenden, um die Datei zu parsen, wird Ihnen angezeigt, was WIRKLICH vorgeht. In diesem Fall geben Sie ein:

FIND " " file1

Und du wirst belohnt werden mit:

---------- FILE1
File One
→File Two
15
James K

Windows 8 x86:

 Microsoft Windows [Version 6.2.9200] 
 (C) 2012 Microsoft Corporation. Alle Rechte vorbehalten .

 C:\Users\Nikos> echo foo> file1 

 C:\Users\Nikos> echo bar> file2 

 C:\Users\Nikos > Kopie/b Datei1 + Datei2 Datei1 
 Datei1 
 Datei2 
 1 kopierte Datei (en) .

 C:\Users\Nikos> Typ file1 
 Foo 
 Bar 
28
nikos1993pl

Was ist mit type file2 >> file1

4
nikos1993pl
@echo off

cls

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

exit
2
keval

stellen Sie sicher, dass Sie mit neuen Dateien beginnen, die Sie nie kopiert haben.
Ich habe gerade festgestellt, dass copy a+b a ohne /b an meinem (XP sp3) 1A (SUB) an das Ende der Datei angehängt wird, wodurch alles, was danach passiert, aus der Ausgabe von type verschwindet (aber more wird es zeigen). Copy /b a+b a funktioniert. 

2
wmz

Antwort an: " Wie füge ich mit dem COPY-Befehl eine Datei an

WARNING: Wenn Sie eine Liste von Dateien haben, die Sie mit dem Befehl COPY kombinieren möchten, ist dies einfach, kann jedoch Ihre Dateien zerstören.

Gefährlicher Weg :

copy /b one + two + three - fügt der Datei "eins" den Inhalt "zwei" und "drei" an. Das Original "Eins" hat nun den Inhalt von 3 Dateien in der richtigen Reihenfolge. Wenn während des Kopiervorgangs etwas schief geht, haben Sie keine Möglichkeit, die ursprüngliche "Eins" wiederherzustellen, da dies beschädigt wird und Ihre Daten im Wesentlichen verloren gehen. Es gibt fast nie einen Grund, diesen Weg zu verwenden.

Sicherer Weg :

copy /b one + two new_filename - kombiniert 2 Dateien (Sie können natürlich mehr als zwei auflisten), erstellt einen neuen_Dateinamen, der "eins" und "zwei" in der richtigen Reihenfolge enthält, und lässt die ursprünglichen Dateien unverändert. 

2
Emil
 C:\Users\Nikos> Typ file1 
 Foo 
 Bar 

 C:\Users\Nikos> kopiere file1 + con = file1 
 File1 
 Con 
 ihdui 
 ohisd 
 ^ Z 
 1 kopierte Datei (en) .

 C:\Users\Nikos> Typ file1 
 Foo 
 Bar 
 Ihdui 
 Ohisd 
1
nikos1993pl

Haben Sie copy /b file1 + file2 file1 ausprobiert

1
nikos1993pl

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 Benachrichtigung "1 Datei (en) kopiert", mag es keine Dateien mit lustigen Namen.

1
david

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

1
nikos1993pl

So kopieren Sie in eine Binärdatei ...

Legen Sie alle Dateien in demselben Ordner ab, z. G:\Files

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

und .ext ist der erforderliche Dateityp

0
Nigel