KidCode
Messages postés3Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention20 janvier 2003 20 janv. 2003 à 19:36
Ok, parfait!
Je suis 1 peu circonspect devant la position des symboles % dans les fichiers batch.
Parfois 1 devant la variable puis 1 autre derrière.
D'autres fois 2 devant la variable, et rien derrière.
Cela reste bien mystérieux pour moi, sachant que les infos que j'ai pu glanées à ce sujet, n'explique jamais à fond les différents cas d'utilisation de syntaxe.
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 21 janv. 2003 à 00:17
Bonsoir. Quelques indications sur MS-DOS
Commandes MS-DOS sur la ligne de commande
+++++++++++++++++++++++++++++++++++++++++
1) Exemple avec FOR
FOR %f IN (*.TXT *.DOC) DO TYPE %f
affiche (TYPE en DOS) tous les fichiers .TXT et .DOC
Voir exemple 4 ci-dessous
Dans un fichier BATCH
+++++++++++++++++++++
2) %VAR% fait référence à la valeur
de la variable système VAR préalablement définie.
Voir la variable DESTIN ci-dessous
------------------------------------------
3) %1, %2, ... font référence aux paramètres passés au fichier BATCH.
Exemple le fichier COPIER.BAT appelé par COPIER C:\WINDOWS TRUC.TXT MACHIN.DOC
copie les fichiers TRUC.TXT et MACHIN.DOC du dossier par défaut dans C:\WINDOWS
@ECHO OFF
SET DESTIN=%1 <- 1er paramètre
:COPIE
SHIFT <-lecture du 2ème paramètre, puis du 3ème
IF "%1"=="" GOTO FIN
COPY %1 %DESTIN%
GOTO COPIE
:FIN
ECHO Copie terminée
-------------------------------------------
4) Exemple avec FOR (le même que 1)
FOR %%f IN (*.TXT *.DOC) DO TYPE %%f
affiche (TYPE en DOS) tous les fichiers .TXT et .DOC
-------------------------------------------
5) Pas de ELSE EN DOS => ta commande est incorrecte
for %%a in (fic1, fic2, etc..) do if exist %%a goto next else goto error
Il faut écrire :
FOR %%a IN (fic1, fic2, etc..) DO IF EXISTt %%a GOTO NEXT
GOTO ERROR <- Si n'existe pas
:NEXT
Rem traitement si existe
GOTO FIN <- pour sauter la section ERROR
:ERROR
Rem traitement si n'existe pas
:FIN