.bat IF 64 bits

Micromega -  
jee pee Messages postés 41539 Date d'inscription   Statut Modérateur Dernière intervention   -
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 41539 Date d'inscription   Statut Modérateur Dernière intervention   9 722
 
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
Micromega
 
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 41539 Date d'inscription   Statut Modérateur Dernière intervention   9 722
 
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