Condition IF sur comparaison de fichier

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
KERVIN
Batcheur occasionnel
Messages : 1
Enregistré le : 30 juil. 2015 22:17

Condition IF sur comparaison de fichier

Message par KERVIN »

bonjour,

Je n'y connais hélas pas grand chose sur les commandes DOS, mais voilà mon problème.
Je souhaite faire une action à la suite de la comparaison de deux fichiers, mais voilà, ça fait pas grand chose, je dois pas être loin d'un résultat.
Voici ce que j'ai écris dans un batch :

Code : Tout sélectionner

IF TYPE C:\batch\REF_LOC\100.txt LSS TYPE C:\batch\REF_SRV\100.txt C:\batch\123.txt
dans le fichier REF_LOC\100.txt on retrouve comme valeur 100
et dans REF_ SRV\100.txt on retrouve comme valeur 101

le premier est donc < que le second mais .... rien

Avez-vous une idée ??

Merci d'avance
batch_guy
Batcheur débutant
Messages : 10
Enregistré le : 02 août 2015 02:47

Re: Condition IF sur comparaison de fichier

Message par batch_guy »

Salut !

Tu ne peux pas utiliser des if comme tu essayes de le faire.

C'est la valeur contenue dans ton premier fichier qui est plus grande que celle
contenue dans le deuxième fichier, pas les fichiers en eux-mêmes.

Si j'ai bien compris, chacun de tes deux fichiers ne contient qu'une (ET une seule) ligne.
Voilà le code que je te propose

Code : Tout sélectionner

:: on récupère la valeur dans le 1er fichier

FOR /F "tokens=*" %%a IN (C:\batch\REF_LOC\100.txt
) DO (
SET valeur_dans_REF_LOC_100txt=%%a
)

:: on récupère la valeur dans le 2ème fichier

FOR /F "tokens=*" %%a IN (C:\batch\REF_SRV\100.txt
) DO (
SET valeur_dans_REF_SRV_100txt=%%a
)

:: on peut maintenant comparer les deux valeurs

IF %valeur_dans_REF_LOC_100txt% LSS %valeur_dans_REF_SRV_100txt% (
:: insérer ici une commande à exécuter
:: une autre ici si on veut
:: etc. attention à bien conserver la parenthèse de la ligne suivante
)
En ce qui concerne la commande TYPE :

pour afficher un fichier à l'écran

Code : Tout sélectionner

TYPE fichier_1.txt
pour écrire un fichier dans un autre

Code : Tout sélectionner

TYPE fichier_1.txt>fichier_2.txt
ATTENTION !

si "fichier_2.txt" existe déjà il sera remplacé par ce que contient "fichier_1.txt" !
s'il n'existe pas, il sera créé.

Pour écrire un fichier à la suite d' un fichier existant (concaténer des fichiers) il faut mettre deux chevrons

Code : Tout sélectionner

TYPE fichier_1.txt>>fichier_2.txt
En espèrant t'avoir été utile !
Répondre