Variables d'environnement

Version imprimableEnvoyer par emailversion PDF

Windows

Sous Windows, la commande set, vous renvoie la liste des variables d'environnement de votre poste.

Variables communes à la plupart des versions de Windows

  • %TMP% et %TEMP% : répertoire temporaire de Windows.
  • %PROMPT% : Invite affichée par l'invite de commandes.
  • %Winbootdir%: répertoire de démarrage de Windows.
  • %COMSPEC% : nom du programme d'invite de commande.
  • %PATH% : chemins de recherche des programmes et DLL (séparés par des points virgules).
  • %Windir% : répertoire de Windows.

Variables disponibles sous Windows NT / 2000 / XP

  • %COMPUTERNAME% : nom de l'ordinateur.
  • %HOMEDRIVE% : disque local primaire (partition système).
  • %HOMEPATH% : dossier par défaut pour les utilisateurs.
  • %LOGONSERVER% : nom du serveur de domaine.
  • %NUMBER_OF_PROCESSORS% : nombre de processeurs installés.
  • %OS% : nom du système d'exploitation.
  • %Os2LibPath% : chemin de la bibliothèque Microsoft OS/2.
  • %PATHEXT% : liste des extensions de fichier reconnus comme des exécutables.
  • %PROCESSOR_ARCHITECTURE% : type de processeur installé.
  • %PROCESSOR_IDENTIFIER% : identification du processeur installé (type, modèle, etc.).
  • %PROCESSOR_LEVEL% : niveau du processeur.
  • %PROCESSOR_REVISION% : révision du processeur.
  • %SystemDrive% : disque local sur lequel le système réside.
  • %SystemRoot% : chemin du système (égal à Windir).
  • %USERDOMAIN% : nom du domaine sous lequel l'utilisateur s'est connecté.
  • %USERNAME% : nom de l'utilisateur courant.
  • %USERPROFILE% : chemin du profil de l'utilisateur courant.

Variables disponibles sous Windows 2000 / XP

  • %ALLUSERSPROFILE% : chemin du profil commun à tous les utilisateurs.
  • %APPDATA% : chemin des données applicatives de l'utilisateur courant.
  • %CommonProgramFiles% : chemin des programmes communs.
  • %ProgramFiles% : chemin des programmes.

Autres variables

  • %CLIENTNAME% : Console
  • %CommonProgramFiles% : C:\Program Files\Fichiers communs
  • %DEVMGR_SHOW_DETAILS% : 1
  • %LOGONSERVER% : \\ORDINATEUR
  • %PATHEXT% : .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
  • %PROCESSOR_ARCHITECTURE% : x86
  • %PROCESSOR_IDENTIFIER% : x86 Family 6 Model 15 Stepping 11, GenuineIntel
  • %PROCESSOR_LEVEL% : 6
  • %PROCESSOR_REVISION% : 0801
  • %PROMPT% : $P$G
  • %SESSIONNAME% : Console
  • %SystemDrive% : C:
  • %SystemRoot% : C:\WINDOWS

Spécificités Windows 7

Entre Windows 7 et Windows XP, l'emplacement de fichiers personnels et de paramètres personnels à changé.

Documents and Settings a disparu, et un répertoire nommé Users a apparu.

Quatre nouvelles variables d'environnement sont apparues, à savoir :

  • %CommonProgramFiles%
  • %LocalAppdata%
  • %ProgramData%
  • %Public%
  • L'emplacement du module PowerShell est rendu disponible par la variable : %PSModulePath%

Résumé

Paramètres utilisateurs

Depuis Windows 7/2008, le dossier principal du profil utilisateur (%USERPROFILE%) à été déplacé de C:\Documents and Settings\ à C:\Users\ et de nombreux dossiers de profils ont aussi changés d'emplacement :

Windows XP/2003

Windows 7/2008

%USERPROFILE%\Application Data

%USERPROFILE%\AppData\Roaming

%USERPROFILE%\Cookies

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Cookies

%USERPROFILE%\History

%USERPROFILE%\AppData\Local\Microsoft\Windows\History

%USERPROFILE%\Local Settings

%USERPROFILE%\AppData\Local

%USERPROFILE%\My Documents

%USERPROFILE%\Documents

%USERPROFILE%\NetHood

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts

%USERPROFILE%\PrintHood

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Printer Shortcuts

%USERPROFILE%\Recent

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent

%USERPROFILE%\SendTo

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo

%USERPROFILE%\Start Menu

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu

%USERPROFILE%\Templates

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Templates

%USERPROFILE%\Temporary Internet Files

%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files

Ces valeurs peuvent être trouvées dans la base de registre (valeurs REG_EXPAND_SZ) :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Ces clés HKCU sont communes à Windows XP/2003/7/2008 :

AppData, Cache, Cookies, Desktop, Favorites, History, LocalAppData, My Pictures, NetHood, Personal, PrintHood, Programs, Recent, SendTo, Start Menu, Startup, Templates.

En théorie, les applications consultent ces valeurs de la base de registre, d'autres ont spécifié le chemin en dur dans leur code source. C'est pour garantir une certaine compatibilité que Windows 7/2008 comporte un lien symbolique depuis C:\Documents and Settings.

Paramètres de tous les utilisateurs

Windows XP/2003

 Windows 7/2008

%ALLUSERSPROFILE%\Application Data

%ProgramData%

%ALLUSERSPROFILE%\Desktop

%PUBLIC%\Desktop

%ALLUSERSPROFILE%\Documents

%PUBLIC%\Documents

%ALLUSERSPROFILE%\Start Menu\Programs

%ProgramData%\Microsoft\Windows\Start Menu\Programs

%ALLUSERSPROFILE%\Start menu

%ProgramData%\Microsoft\Windows\Start Menu

%ALLUSERSPROFILE%\Start Menu\Programs\Startup

%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup

%ALLUSERSPROFILE%\Templates

%ProgramData%\Microsoft\Windows\Templates

Ces valeurs peuvent être trouvées dans la base de registre (valeurs REG_EXPAND_SZ) :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Ces clés HKCU sont communes à Windows XP/2003/7/2008 :

Common AppData, Common Desktop, Common Documents, Common Programs, Common Start Menu, Common Startup, Common templates.

Détection du système d'exploitation

64 / 32 bits

Note : il est possible d'avoir un processeur 64 bits, un système d'exploitation 64 bits, et un processus 64 bits. De même il est possible d'avoir un processeur 64 bits, un système d'exploitation 32 bits et un processus 16 bits.

Voici un tableau résumant les situations possibles :

  Processeur Système d'exploitation Processus
Windows 3.1 16 16 16
Windows 95/NT 32 32 32
Windows XP (avec
compatibilité 16 bits)
32 32 16
Windows XP 32 32 32
Windows XP sur
du matériel récent
64 32 32
Windows 7/2008 sur
du vieux matériel
32 32 32
Windows 7/2008
(compatibilité 32 bits)
64 64 32 (WOW)
Windows 7/2008 64 64 64

Détecter un processeur 64 bits

Depuis Windows Vista, vous pouvez utilisez la commande "wmic" :


wmic os get osarchitecture


Script batch d'exemple (de cette page) pour détecter un système 64 bits :


:: OS installé
Set _Bit=64
If %PROCESSOR_ARCHITECTURE% == x64 (
     If not defined PROCESSOR_ARCHITEW6432 set _Bit=32
)
echo Votre système est %_Bit% bits


Second exemple


If PROCESSOR_ARCHITECTURE == amd64
OR PROCESSOR_ARCHITEW6432 == amd64 THEN
// Plateforme 64 bits
ELSE
// Plateforme 32 bits
End if


 

 

Détecter un processus 64 bits

Sous Windows 7, exécuter C:\windows\SysWOW64\cmd.exe va lancer une instance 32 bits de CMD.exe, même si le système d'exploitation est 64 bits.

Toute application compilée pour un processeur 32 bits va s'exécuter de la même manière. Il est possible de détecter ceci avec la variable %PROCESSOR_ARCHITECTURE% .


::Processus
If %PROCESSOR_ARCHITECTURE% == x64 (
   set _ps_bitness=32
   ) else ( set _ps_bitness=64)
echo Le processus est %_ps_bitness% bits.


Emplacement de Program Files pour les applications 32 bits


 :: Program Files location for 32 bit apps
If DEFINED ProgramFiles(x86) Set _programs=%ProgramFiles(x86)%
If Not DEFINED ProgramFiles(x86) Set _programs=%ProgramFiles%
Echo Program Files location for 32 bit apps:
Echo %_programs% 


Emplacment de Program Files pour les applications 64 bits


:: Cette commande doit être exécutée sur un OS 64 bits pour des applications 64 bits
echo %ProgramFiles%


Installer une application en fonction de la plateforme


if exist "%programfiles(x86)%" (GOTO 64-Bit) else (GOTO 32-bit)
:32-Bit
echo Système d'exploitation 32 bits détecté... Installation du programme x32 ...
start /wait "Installation en cours" msiexec /i "%temp%\fichier-x32.msi" /qn /norestart
goto EOF
:64-Bit
echo Système d'exploitation 64 bits détecté... Installation du programme x64 ...
start /wait "Installation en cours" msiexec /i "%temp%\fichier-x64.msi" /qn /norestart
goto EOF


Détection du système d'exploitation depuis la base des registres

Lire : http://support.microsoft.com/kb/556009

Exemples

Vous pouvez utiliser ces variables dans vos scripts, par :

echo %variable%


echo %PROCESSOR_IDENTIFIER%
x86 Family 6 Model 15 Stepping 11, GenuineIntel
:: Même commande sur une autre plateforme
echo %PROCESSOR_IDENTIFIER%
Intel64 Family 6 Model 42 Stepping 7, GenuineIntel


Trouver l'emplacement du menu démarrer


REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu"
REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Start Menu"
For /f "tokens=3*" %%G in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu" ^|Find "REG_"') do Call Set _startmenu=%%H
Echo %_startmenu%


 

Sponsors