Comment vérifier l’emplacement du dossier Program Files 32bit dans le script Windows .bat

Je veux écrire un script .bat qui fonctionne sous toutes les versions de Windows, peu importe 32 ou 64 bits.

Dans ce script, je veux exécuter certains fichier.exe. Ce fichier se trouve dans C: \ Program Files \ sous les systèmes 32 bits ou C: \ Program FIles (x86) \ sous les systèmes x64. Je peux écrire:

“% ProgramFiles (x86)% \ file.exe” sous les systèmes 64 bits ou “% ProgramFiles% \ file.exe” sous les systèmes 32 bits, mais je veux rendre le script universel. Y a-t-il un moyen de déterminer ce chemin universellement?

Vous pouvez simplement vérifier son existence et stocker le chemin;

@echo off & setLocal enabledelayedexpansion if exist "C:\Program Files\app1.exe" ( set PPATH="C:\Program Files\" ) else ( set PPATH="C:\Program Files(x86)\" ) start "" %PPATH%app1.exe start "" %PPATH%app2.exe start "" %PPATH%app3.exe 

Script VBS:

  set wshShell = createObject("WScript.Shell") ''----------------------------------- ''Get 32-bit program files path ''----------------- OsType = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE") If OsType = "x86" then '''wscript.echo "Windows 32bit system detected" strProgramFiles = wshShell.ExpandEnvironmentSsortingngs("%PROGRAMFILES%") elseif OsType = "AMD64" then '''wscript.echo "Windows 64bit system detected" strProgramFiles = wshShell.ExpandEnvironmentSsortingngs("%PROGRAMFILES(x86)%") end if 

“whereis” est une commande linux pour faire cela, mais un port Windows est disponible (unxutils, je crois). Vous n’obtenez pas le chemin sans elle.

Je pense qu’au lieu d’un fichier “bat”, vous devriez utiliser un fichier VBScript / JScript. Chacun de ces scripts peut être exécuté par l’interpréteur Windows Script (wscript.exe / cscript.exe). L’environnement de script et les interpréteurs sont disponibles sur toutes les versions de Windows, il n’y a donc rien à craindre. Vous pouvez trouver des exemples de code pour parcourir la structure des répertoires, vérifier la présence des fichiers, etc. en utilisant VBScript. Vous pouvez utiliser l’ object FileSystemObject pour la plupart.

Pour simplifier, vous pouvez toujours faire ce qui suit:

 cd %PROGRAMFILES% cd %PROGRAMFILES(x86)% Program.exe 

Cela suppose que vous ne devez rien faire de compliqué, mais si la configuration du répertoire actuel est suffisante, cela devrait fonctionner correctement.