wmic result to fichier texte nommé


1

J'écris un script batch pour installer un logiciel dépendant de 32 ou 64 bits. J'utilise "wmic os get osarchitecture" pour déterminer l'architecture du système d'exploitation Windows.

Ce que je cherche à faire est d’avoir la sortie WMIC dans un fichier texte nommé qui est basé sur la sortie. Par exemple, si le résultat est un système d'exploitation 32 bits, il créera un fichier texte appelé 32bit.txt ou, s'il s'agit d'un système d'exploitation 64 bits, il créera un fichier texte appelé 64 bits.txt.

De cette façon, mon script de commandes peut exécuter le programme d'installation 32 bits si 32bit.txt existe ou exécuter le programme d'installation 64 bits si 64 bits.txt existe.


Juste par curiosité, pourquoi avoir deux noms de fichiers différents? Ne serait-il pas plus simple de définir une variable sur 32bitou 64bit?
Scott

Le logiciel que j'essaie d'installer est la prise en charge d'appareils mobiles Apple et d'applications. ils ont des installateurs distincts basés sur l'architecture, pas seulement un commutateur. Et ce que vous suggérez est peut-être encore possible, mais comme c'est nouveau pour moi, je n'en sais pas assez pour le faire? :)
Dgagne

La réponse de Worthwelle montre exactement (plus ou moins) ce dont je parle. Vous pourriez avoir besoin de faire quelque chose comme IF "%PROCESSOR_ARCHITECTURE%"=="x86" (apple32) else (apple64).
Scott

Réponses:


1

La PROCESSOR_ARCHITECTUREvariable d'environnement peut vous donner quelque chose de similaire à ce que vous voulez. Il contiendra x86, AMD64, ARM64ouIA64 que vous pouvez ajouter à votre nom de fichier.

Par exemple:

wmic os get osarchitecture >%PROCESSOR_ARCHITECTURE%.txt

Vous pouvez également l'utiliser directement dans votre script de traitement par lots pour appeler les installateurs. Par exemple, j'ai généralement la structure de fichier suivante pour les installations par lots:

root
    x64
        installer.exe
    x86
        installer.exe

Le fichier de commandes contiendra alors quelque chose comme:

IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=x86) else (set bit=x64)
"%bit%\installer.exe"

Si vous préférez utiliser WMIC, vous pouvez le faire sans utiliser de fichier:

for /f "tokens=1,2 delims=-" %%a in ('wmic os get osarchitecture ^| find "bit"') do set bit=%%a%%b

bitcontiendrait alors 32bitou 64bit.


Etes-vous sûr que x64c'est une valeur valide / attendue pour %PROCESSOR_ARCHITECTURE%? Sur mon Dell Inspiron basé sur Intel i5 (sous Windows 7 64 bits), c'estAMD64
Scott

@Scott Les valeurs sont x86, AMD64, ARM64ou IA64. Le code de lot définit sa propre variable avec x64pour réduire le nombre de valeurs.
Worthwelle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.