Faire un script en dos - FONCTION IF & FOR
edenfusion
-
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Alors je sais que la prog en dos c'est un peu dépassé mais j'ai besoin de faire un petit script tout bête qui évidemment ne veut pas fonctionner.
Le but est d'aller chercher un caractere dans un fichier 1.txt, comparer ce caractere avec un autre fichier ref.txt, si les deux valeurs sont égales, lancer un batch comprat.bat
Mon prog ressemble à cela :
FOR %%c in (C:\chemin\1.txt) DO (echo %%c)
FOR %%b in (C:\chemin\ref.txt) DO (echo %%b)
IF %%b EQU %%C (goto LAUCHA) else (goto FIN)
:LAUCHA
comprat.bat
:FIN
pause
exit
En plus de cela, j'aimerais qu'il se lance de maniere automatique toutes les minutes par exemple... Et là, la tempo, je vois mal...
En tout cas, les lignes ci-dessus ne fonctionne pas car il "pause" à chaque fois...
Merci de vos lumières !!!
Alors je sais que la prog en dos c'est un peu dépassé mais j'ai besoin de faire un petit script tout bête qui évidemment ne veut pas fonctionner.
Le but est d'aller chercher un caractere dans un fichier 1.txt, comparer ce caractere avec un autre fichier ref.txt, si les deux valeurs sont égales, lancer un batch comprat.bat
Mon prog ressemble à cela :
FOR %%c in (C:\chemin\1.txt) DO (echo %%c)
FOR %%b in (C:\chemin\ref.txt) DO (echo %%b)
IF %%b EQU %%C (goto LAUCHA) else (goto FIN)
:LAUCHA
comprat.bat
:FIN
pause
exit
En plus de cela, j'aimerais qu'il se lance de maniere automatique toutes les minutes par exemple... Et là, la tempo, je vois mal...
En tout cas, les lignes ci-dessus ne fonctionne pas car il "pause" à chaque fois...
Merci de vos lumières !!!
A voir également:
- Faire un script en dos - FONCTION IF & FOR
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Fonction si et - Guide
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Idm for mac - Télécharger - Téléchargement & Transfert
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,
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