Condition BATCH

Résolu/Fermé
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 - 14 juil. 2011 à 13:23
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 - 18 juil. 2011 à 18:11
Bonjour,

On m'a donné un petit programme en .exe, mais le problème est qu'il y a une version par système d'exploitation. Voici la liste des versions :

-Windows XP et antérieures
-Windows Vista 64 bits
-Windows Vista 32 bits
-Windows 7 64 bits
-Windows 7 32 bits

Je me suis dit d'un raisonnement logique qu'il fallait interroger la machine sur le système d'exploitation présent, puis demander au batch d'ouvrir un exécutable en fonction de ça. Pourriez vous me décrire la démarche à suivre, voir me donner des bouts de codes que je pourrais remettre en place ?

Merci par avance.
Cordialement, Florian

5 réponses

voilou:

@echo off
set /p variable1=Veuillez entrer le 1e mot :
set /p variable2=Veuillez entrer le 2e mot :
set /p variable3=Veuillez entrer le 3e mot :
set /p variable4=Veuillez entrer le 4e mot :
set /p variable5=Veuillez entrer le 5e mot :
set /p variable6=Veuillez entrer le 6e mot :
set /p variable7=Veuillez entrer le 7e mot :
echo copier le texte dans le fichier texte puis enregistrer
pause

find "%variable1%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable1%

find "%variable2%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable2%

find "%variable3%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable3%

find "%variable4%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable4%

find "%variable5%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable5%

find "%variable6%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable6%

find "%variable7%" texte.txt >nul
if %errorlevel% EQU 0 echo %variable7%

pause
1
salut,

tu pourrais faire un "systeminfo" que tu rediriges vers un fichier temporaire en selectionnant seulement les infos qui te sont nécessaires.

Ensuite tu compares les chaines de caractere présentes dans le fichier à tes différentes possibilités et voila...
0
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 2
14 juil. 2011 à 16:53
Je teste ça et je te dis ;)
0
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 2
15 juil. 2011 à 13:22
ça marche ! J'aimerais juste avoir une petite informations supplémentaire ... Je souhaite vérifier si l'un ou plusieurs mots rentrés au préalable dans des variables (7 en tout) seraient présents dans un fichier texte ...

Pour l'instant j'ai fait :

@echo off
set /p variable1=Veuillez entrer le 1e mot : 
set /p variable2=Veuillez entrer le 2e mot : 
set /p variable3=Veuillez entrer le 3e mot : 
set /p variable4=Veuillez entrer le 4e mot : 
set /p variable5=Veuillez entrer le 5e mot : 
set /p variable6=Veuillez entrer le 6e mot : 
set /p variable7=Veuillez entrer le 7e mot : 
pause
echo vérifiez que le fichier texte est bien enregistré
pause


là il me manque à savoir comment comparer le tout ... j'ai pensé à utiliser FOR avec EXIST dans une boucle avec variable1, puis variable2 etc. , mais je ne vois pas comment je pourrais programmer cela ... merci d'avance pour les réponses !
0
salut,

la avec une boucle ce n'est pas forcément l'idéal suivant ce que tu veux faire.
Pour avoir un plus grand champ d'actions, je ferai ceci:

set /p variable1=Veuillez entrer le 1e mot :
find "%variable1%" fichier_a_comparer >nul
if %errorlevel EQU 0 (chaine de caractere présente) alors tu fais ....
if %errorlevel GTR 0 (chaine de caractere non présente) alors tu fais....

voila et pareil pour chaque variable rentrée.
0
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 2
18 juil. 2011 à 14:25
Merci de ta réponse ! J'ai donc fait ça :

@echo off
set /p variable1=Veuillez entrer le 1e mot : 
set /p variable2=Veuillez entrer le 2e mot : 
set /p variable3=Veuillez entrer le 3e mot : 
set /p variable4=Veuillez entrer le 4e mot : 
set /p variable5=Veuillez entrer le 5e mot : 
set /p variable6=Veuillez entrer le 6e mot : 
set /p variable7=Veuillez entrer le 7e mot : 
echo copier le  texte dans le fichier texte puis enregistrer
pause
find "%variable1%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable1% 
find "%variable2%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable2%
find "%variable3%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable3%
find "%variable4%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable4%
find "%variable5%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable5% 
find "%variable6%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable6%
find "%variable7%" texte.txt >nul 
if %errorlevel% EQU 0 (chaine de caractere présente)
echo %variable7%
pause


mais cela me ressort tous les mots ... à quoi sert le GTR ? Je pense que c'est cet attribut qu'il me manque, mais si elle est pas présente la chaîne de caractère ça sert à rien de l'ajouter si ? :/

Merci beaucoup de ton aide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
darknessfog Messages postés 17 Date d'inscription jeudi 14 juillet 2011 Statut Membre Dernière intervention 24 juillet 2011 2
18 juil. 2011 à 18:11
Merciiiii :D problème résolu !
0