web-dev-qa-db-fra.com

Comment puis-je ajouter à un fichier à l'aide de la commande COPY

J'utilise Windows 7 Ultimate x64, mais mon expérience remonte à DOS 3.0.

Depuis DOS 3.1, vous avez pu ajouter un fichier à un autre en utilisant la commande COPY:

COPY FILE1+FILE2=FILE1

Rendre inutile la nécessité d'un fichier temporaire3.

C'était une commande très pratique car chaque fois que vous ajoutiez un nouveau programme, vous deviez souvent mettre à jour vos fichiers CONFIG.SYS et AUTOEXEC.BAT.

Auparavant, il était également important d’obtenir la bonne commande, sinon vous vous retrouveriez avec un FILE1 vide.

Mais aujourd’hui, lorsque j’ai essayé de le faire, le code FILE1 n’a pas été modifié, et lorsque j’ai inversé la commande, il a (de manière compréhensible) créé FILE1 une copie de FILE2.

Est-ce que quelqu'un sait s'il a été remplacé par une autre méthode et quand ce changement est arrivé?

MODIFIER:

J'ai fait plus de tests, et curieusement, même si le code ci-dessus ne fonctionne pas, vous pouvez toujours copier depuis la console et l'ajouter à un fichier existant comme ceci:

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

Je me demande si ma version de Windows est en quelque sorte gâchée. Tout corps peut-il reproduire mes découvertes?

MODIFIER:

Il fonctionne sous 95/98/ME/2000/XP/XP Mode/7 Professional x64/8 x64. Donc, j'imagine que ce n'est pas un problème 7 Ultimate x64, mais plutôt un problème avec ma machine.

* Soupir *

MODIFIER:

Dernière édition, promis. :)

Ce n'était pas un problème avec ma machine, c'était un problème avec File1. Apparemment, lorsque j’y ai ajouté pour la première fois File2, les caractères [CTRL] + Z (caractère EOF) n’ont jamais été remplacés, ce qui a donné l’impression suivante au fichier:

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

Vous pouvez le dupliquer vous-même avec l'expérience suivante à partir de l'invite de commande. (Où ^ Z est le caractère [CTRL] + Z)

A l'invite de commande, tapez:

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

Tu verras:

file1

File One

file2

File Two
File Three

Vous pouvez type file2 >> file1 ou utiliser presque n'importe quelle autre méthode de concaténation de fichiers. Lorsque vous tapez file1, il ne semble toujours contenir que File One. MAIS si vous utilisez FIND "searchterm" file pour analyser le fichier, il vous montrera ce qui se passe VRAIMENT. Dans ce cas, tapez:

FIND " " file1

Et vous serez récompensé par:

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

Windows 8 x86:

 Microsoft Windows [Version 6.2.9200] 
 (C) 2012 Microsoft Corporation. Tous droits réservés .

 C:\Utilisateurs\Nikos> echo foo> fichier1 

 C:\Utilisateurs\Nikos> barre d'écho> fichier2 

 C:\Utilisateurs\Nikos > copier/b fichier1 + fichier2 fichier1 
 fichier1 
 fichier2 
 1 fichier (s) copié (s) .

 C:\Utilisateurs\Nikos> type fichier1 
 Foo 
 Bar 
28
nikos1993pl

Qu'en est-il de type file2 >> file1

4
nikos1993pl
@echo off

cls

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

exit
2
keval

assurez-vous de commencer avec de nouveaux fichiers que vous n'avez jamais essayé de copier.
Je viens de constater que sur mon (XP sp3) copy a+b a sans /b ajoute 1A (SUB) à la fin du fichier, ce qui fait que tout ce qui suit disparaît de la sortie de type (mais more le montrera). Copy /b a+b a fonctionne. 

2
wmz

Answer to: " Comment ajouter un fichier à l'aide de la commande COPY

WARNING: Si vous avez une liste de fichiers que vous souhaitez combiner via la commande COPY, la procédure est simple mais peut potentiellement détruire vos fichiers.

Voie dangereuse :

copy /b one + two + three - ajoutera le contenu de "deux" et "trois" au fichier "un". Ainsi, le "premier" original contient maintenant le contenu de 3 fichiers dans l'ordre approprié. Si, au cours du processus de copie, les choses tournent mal, vous ne pourrez pas récupérer le "premier" original, car celui-ci sera corrompu et vos données seront essentiellement perdues. Il n'y a presque jamais de raison d'utiliser cette méthode.

Safe Way :

copy /b one + two new_filename - combinera 2 fichiers (vous pouvez en lister plus de deux bien sûr), créant un nouveau_nom_fichier contenant "un" et "deux" dans le bon ordre et laissant les fichiers originaux intacts. 

2
Emil
 C:\Utilisateurs\Nikos> type fichier1 
 Foo 
 Barre 

 C:\Utilisateurs\Nikos> copier fichier1 + con = fichier1 
 Fichier1 
 Con 
 ihdui 
 ohisd 
 ^ Z 
 1 fichier (s) copié (s) .

 C:\Utilisateurs\Nikos> type fichier1 
 Foo 
 Bar 
 Ihdui 
 Ohisd 
1
nikos1993pl

Avez-vous essayé copy /b file1 + file2 file1

1
nikos1993pl

Attendre! Il y a plus! (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

En mettant de côté la notification "1 fichier (s) copié (s)", elle n’aime pas les fichiers avec des noms amusants.

1
david

copy /b input1 + input2 output
del input1
ren output input1
Peut être ça? : P

1
nikos1993pl

Pour copier dans un fichier binaire ...

Placez tous les fichiers dans le même dossier, par exemple. G:\Files

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

et .ext est le type de fichier requis

0
Nigel