.bat IF 64 bits

Fermé
Micromega - 16 mai 2016 à 13:04
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 - 17 mai 2016 à 13:12
Bonjour,

Dans un ".bat" j'ai une successions de commandes.
Cette successions de commandes commence en amont par un IF fichier existe alors faire ça ou ça.
Cependant j'aimerais intégrer un second IF au code qui lance un fichier 64 bits seulement si la machine est en 64 bits. Lorsque je fait :

If not "%PROCESSOR_ARCHITECTURE%"=="x86" goto [64 Bits]
:[64 Bits]
Start "" "Fichier en 64 bits"

Cela ne fonctionne pas. Où est l'erreur ?
Par ailleurs, est-il possible de mettre plusieurs IF successivement ?

Merci
A voir également:

3 réponses

jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié par jee pee le 16/05/2016 à 14:05
Bonjour,

Sur mon pc (Windows 10 64 bits) ton script fonctionne.

Sauf que si tu mets les commandes pour 32 bits derrière le IF et qu'avant le label [64 bits] tu ne mets pas un saut, cela exécute 32 + 64

Il te faut une syntaxe du type

If not "%PROCESSOR_ARCHITECTURE%"=="X86" goto [64 Bits]
echo 32 BITS
.....
goto END
:[64 Bits]
echo 64 BITS
....
:END



cdlt


        un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Bonjour,

Merci pour la réponse.

Oui cela fonctionne sous Win10 64b, mais sur un XP 32b il lance quand même la commande malgré qu'il s'agisse d'une version 32.

Par ailleurs mon code ressemble à un truc comme ça :

IF exist "Fichier" (GOTO [OUI]) ELSE (GOTO [NON])

:[OUI]
Start "" "Fichier.exe" >NUL 2>&1
GOTO END

:[NON]
Copy "Fichier.exe" "%WINDIR%\System32" >NUL 2>&1
Start "" "fichier.exe" >NUL 2>&1
GOTO END

:END


Comment insérer un autre IF et go to end en fonction du processeur ?

Merci
0
jee pee Messages postés 39631 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié par jee pee le 17/05/2016 à 13:16
Parce qu'en informatique tout compte x86 n'est pas (toujours) égal à X86 ;-)

tu pourrais essayer un truc du style

IF exist "Fichier" goto [OUI]

IF "%PROCESSOR_ARCHITECTURE%"=="x86" (
Copy "Fichier.exe" "%WINDIR%\System32" >NUL 2>&1
) ELSE (
Copy "Fichier.exe" "%WINDIR%\syswow64" >NUL 2>&1
)

:[OUI]
Start "" "Fichier.exe" >NUL 2>&1 


        un étranger, c'est un ami qu'on n'a pas encore rencontré.
0