Comme nous apprendrons à couper / copier / coller, faites attention à ne pas écraser des fichiers par d'autres !
Voyons maintenant ces quatre commandes.
Move
Déplacer...
move in english.
Code : Console | move fichierOuDossier destination |
move, tout comme les autres commandes que nous verrons ici, ne peut gérer par ce biais... qu'un seul fichier ou dossier ! Pour en déplacer plusieurs, il vous faudra utiliser les caractères génériques.
move est l'équivalent de notre bien aimé couper-coller, avec la souris en moins

.
move ne déplace ni les fichiers système, ni les fichiers cachés, vous déclarant que "Le fichier spécifié est introuvable.". Il faut donc leur changer leur(s) attribut(s) avant de pouvoir les déplacer.
Aucune autre explication n'est nécessaire, vous arriverez à vous débrouiller seuls

.
Maintenant que nous savons couper-coller, nous allons voir comment copier-coller.
Copy et Xcopy
Pour copier, vous avez la commande
copy (
copier).
copy, comme son nom l'indique, permet de copier... des fichiers, mais pas des dossiers. Cette commande a aussi quelques commutateurs... sans grande importance la plupart du temps.
Code : Console | copy fichierACopier destination |
ou, si vous souhaitez copier tout le contenu d'un dossier (mais uniquement le contenu, pas le dossier lui-même et sans le contenu de ses sous-dossiers) dans un autre :
Code : Console | copy dossierDontLesFichiersSontACopier dossierDeDestination |
Comme pour move, copy ne peut gérer qu'un seul fichier ou dossier (dans le cas des dossiers, il ne touchera pas aux sous-dossiers...). Il faudra donc utiliser les caractères génériques le plus souvent. copy ne s'occupe pas non plus ni des fichiers système, ni des fichiers cachés. Rappel : copy ne permet pas de copier des dossiers.

Mais y a bien une commande qui permet de copier des dossiers, non ?
Oui, et il s'agit de
xcopy. Elle est plus complexe mais permet pas mal de trucs intéressants.
Avec une syntaxe très semblable à celle de
copy, elle permet déjà d'inclure des fichiers cachés et système avec son commutateur
/H.
Code : Console | xcopy *fichiers*.* destination /h |
Pour la copie de dossiers, donc d'
arborescences, on a affaire au commutateur
/E (variantes de ce commutateur :
/S, qui ne copie que les fichiers et dossiers et sous-dossiers non vides et
/T, qui ne s'occupe que des dossiers et sous-dossiers, mais uniquement ceux qui ne sont pas vides ; un
/T /E s'occupe aussi des dossiers vides).
Code : Console | xcopy arborescence destination /e (ou les variantes ci-dessus) |
Pour
xcopy, il faut aussi savoir que si vous spécifiez comme destination un dossier n'existant pas, DOS vous demandera :
Code : Console | Est ce que "destination" spécifie un nom de fichier ou un nom de répertoire de destination
(F=Fichier, R=Répertoire) ? |
Devinez ce qu'il faut répondre ? R, bien

!
xcopy vous créera ensuite le dossier de destination. (On parlera de la réponse F dans la seconde partie de ce big-tuto.)
Voilà, ça suffit pour
xcopy, il y a plein d'autres commutateurs, mais inutile d'en parler ici

.
Une commande de "mise à jour"
Sous DOS, il existe une sorte de raccourci pour mettre à jour des fichiers... une simple commande de remplacement.
Code : Console
fichier peut évidemment contenir toutes sortes de caractères génériques.
replace (
remplacer)
copiera le(s) fichier(s) dans le dossier spécifié... uniquement si ceux-ci
existent déjà et
portent le même nom. Autrement dit : elle ne se contentera que de remplacer les fichiers qui existaient déjà, sans toucher aux autres.
replace n'est pas une commande de remplacement au sens de "remplacer un fichier par un autre" : vous ne pouvez pas marquer :
Code : Console | replace fichierRemplaçant fichierARemplacer |
Ah ok... mais pour une mise à jour, ce serait bien de pouvoir, de un, décider de la date, remplacer uniquement des fichiers plus anciens par des fichiers plus récents, et de deux, de pouvoir rajouter de nouveaux fichiers...
Et c'est le rôle des commutateurs

:
/U mettra vraiment à jour par des fichiers plus récents ;
/S s'occupera aussi des sous-dossiers ;
/A se contentera de ne rajouter que des nouveaux fichiers, sans toucher aux anciens (inutilisable avec les commutateurs
/u ou
/s).
Allez, en bonus, deux "prototypes" de replace bien pratiques pour la mise à jour

:
- mettre à jour un dossier par le biais d'un autre dossier (remplace uniquement les fichiers anciens par les plus récents)
Code : Console | replace dossierDeMiseAJour\* dossierAMettreAJour /u /s |
- rajouter uniquement les nouveaux fichiers non contenus dans le dossier à mettre à jour :
Code : Console | replace dossierDeMiseAJour\* dossierAMettreAJour /a |
Voilà donc pour déplacer, copier, remplacer

. La commande
replace n'est pas essentielle car peut être remplacée par des
copy ou des
move, mais elle est parfois bien pratique

.
Passons maintenant à... la
destruction.