Faire un script en dos - FONCTION IF & FOR
Fermé
edenfusion
-
25 janv. 2008 à 17:39
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 25 janv. 2008 à 19:33
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 25 janv. 2008 à 19:33
A voir également:
- Faire un script en dos - FONCTION IF & FOR
- Fonction si et - Guide
- Script vidéo youtube - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
5 réponses
Bonjour
FOR %%c in (C:\chemin\1.txt) DO (echo %%c)
ceci ne recherche absolument pas un caractère dans le fichier C:\chemin\1.txt. Cette commande donne simplement la valeur C:\chemin\1.txt à la variable %c
de même, %b vaut C:\chemin\ref.txt
donc %b et %c sont différents.
FOR %%c in (C:\chemin\1.txt) DO (echo %%c)
ceci ne recherche absolument pas un caractère dans le fichier C:\chemin\1.txt. Cette commande donne simplement la valeur C:\chemin\1.txt à la variable %c
de même, %b vaut C:\chemin\ref.txt
donc %b et %c sont différents.
Bonjour le père et merci de votre rapide réponse,
Ce que je trouve étrange c'est que le "echo %%c" me donne bien le caractére contenu dans le fichier. J'en ai donc déduit que cela aurait du fonctionner.
Comment est ce que je peux récupérer cette donnée alors ? Avec un SET ? Un FIND ?
Merci,
Ce que je trouve étrange c'est que le "echo %%c" me donne bien le caractére contenu dans le fichier. J'en ai donc déduit que cela aurait du fonctionner.
Comment est ce que je peux récupérer cette donnée alors ? Avec un SET ? Un FIND ?
Merci,
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
25 janv. 2008 à 18:13
25 janv. 2008 à 18:13
Bonjour,
J'ai créé 2 fichiers 1.txt et ref.txt dans lesquels j'ai mis la lettre A, et j'ai initialisé les 2 variables c et b à la même valeur (A)
Ensuite j'ai un peu modifié ton code (modif en en gras)
set "c=A"
set "b=A"
FOR %%c in (1.txt) DO (echo OK FOR c %c%)
FOR %%b in (ref.txt) DO (echo OK FOR b %b%)
REM IF %%b EQU %%c (goto LAUCHA) else (goto FIN)
IF NOT %b% == %c% (goto FIN)
REM :LAUCHA
echo OK comprat.bat
pause
:FIN
pause
exit
Chez moi ça fonctionne
J'ai également fait un test en changeant la letrre d'un des 2 fichiers ça marche aussi
A toi,
J'ai créé 2 fichiers 1.txt et ref.txt dans lesquels j'ai mis la lettre A, et j'ai initialisé les 2 variables c et b à la même valeur (A)
Ensuite j'ai un peu modifié ton code (modif en en gras)
set "c=A"
set "b=A"
FOR %%c in (1.txt) DO (echo OK FOR c %c%)
FOR %%b in (ref.txt) DO (echo OK FOR b %b%)
REM IF %%b EQU %%c (goto LAUCHA) else (goto FIN)
IF NOT %b% == %c% (goto FIN)
REM :LAUCHA
echo OK comprat.bat
pause
:FIN
pause
exit
Chez moi ça fonctionne
J'ai également fait un test en changeant la letrre d'un des 2 fichiers ça marche aussi
A toi,
Merci à vous tous pour vos réponses :
Pour le père, effectivement FOR sans l'option /f ne lit que le nopm de fichier, l'option permet de lire dedans.
Pour Christian, si tu Set les valeurs au début, je vois mal comment la comparaison peut fonctionner mais grâce à ton SET, j'ai trouvé la réponse qui finalement était devant mes yeux :
FOR /F %%c in (1.txt) DO (set c==%%c)
FOR /F %%b in (ref.txt) DO (set b==%%b)
IF NOT %b% NEQ %c% (goto FIN)
comprat.bat
pause
:FIN
pause
exit
----------------------------------
Maintenant, mon problème majeur car je n'ai trouvé aucune commande DOS qui permettait de faire une automatisation... C'est à dire que je souhaite que ce BATCH se lance toutes les minutes par exemple... Juste après la mise à jour d'une base de données renvoyées dans une page PHP. Hélas, on ne peut pas appeler de fichiers batch à partir d'une page PHP... Y aurait-il un moyen de faire cela...
Pour le père... Je suis d'ordinaire également sous Linux, ce qui permet de "scripter" plus facilement, mais là je suis obligé d'utiliser un applicatif Microsoft donc... id est.
Merci en tout cas,
Pour le père, effectivement FOR sans l'option /f ne lit que le nopm de fichier, l'option permet de lire dedans.
Pour Christian, si tu Set les valeurs au début, je vois mal comment la comparaison peut fonctionner mais grâce à ton SET, j'ai trouvé la réponse qui finalement était devant mes yeux :
FOR /F %%c in (1.txt) DO (set c==%%c)
FOR /F %%b in (ref.txt) DO (set b==%%b)
IF NOT %b% NEQ %c% (goto FIN)
comprat.bat
pause
:FIN
pause
exit
----------------------------------
Maintenant, mon problème majeur car je n'ai trouvé aucune commande DOS qui permettait de faire une automatisation... C'est à dire que je souhaite que ce BATCH se lance toutes les minutes par exemple... Juste après la mise à jour d'une base de données renvoyées dans une page PHP. Hélas, on ne peut pas appeler de fichiers batch à partir d'une page PHP... Y aurait-il un moyen de faire cela...
Pour le père... Je suis d'ordinaire également sous Linux, ce qui permet de "scripter" plus facilement, mais là je suis obligé d'utiliser un applicatif Microsoft donc... id est.
Merci en tout cas,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
25 janv. 2008 à 19:33
25 janv. 2008 à 19:33
En effet, j'ai dû me croiser les yeux lors de mon test où j'ai changé la lettre d'un de mes fichiers.