Pourquoi le caractère % dans un chemin de fichier ?

Le
Nathalie
Bonjour,

Dans différentes documentations, je trouve souvent des chemins de
fichiers dans lesquels le caractère % est écrit, comme par exemple :
%systemroot%system32Restorestrui.exe
Que veulent dire ces caractères % ?
Merci D'avance
Nath.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Clive Lumb
Le #870729
Hello Nathalie,

Les "%" sont utilisés pour encadrer des variables système. Cela permet, dans
ton exemple, de se référer au chemin où est installé Windows sans le savoir
(car ce n'est pas forcement C:WINNT). C'est souvent utilisé dans les
fichiers de commande.

Par exemple ouvrir une fenetre de commande (Démarrer, executer, cmd) puis
taper
cd %systemroot%
ou encore
echo %homedrive%%homepath%

La liste complète de variables système est donnée par la commande SET

Bon courage
Clive



"Nathalie" news:406f57ba$0$15462$
Bonjour,

Dans différentes documentations, je trouve souvent des chemins de
fichiers dans lesquels le caractère % est écrit, comme par exemple :
%systemroot%system32Restorerstrui.exe
Que veulent dire ces caractères % ?
Merci D'avance
Nath.


Jean-Claude BELLAMY
Le #870725
Dans le message news:406f57ba$0$15462$ ,
Nathalie
Bonjour,

Dans différentes documentations, je trouve souvent des chemins de
fichiers dans lesquels le caractère % est écrit, comme par exemple :
%systemroot%system32Restorerstrui.exe
Que veulent dire ces caractères % ?


Depuis que MSDOS existe (1981), le caractère "%" encadrant un nom sert à
définir une "variable d'environnement", c'est-à-dire une variable dont le
contenu (une chaine de caractères) est accessible de n'importe où (console,
programme, script, ..)
Exemples :

Batch :
-------
echo %SYSTEMROOT%

En C :
------
char *windir;
windir = getenv( "SYSTEMROOT");

En Delphi :
----------
var windir : string;
windir:=GetEnvironmentVariable('SYSTEMROOT');

En VBS :
--------
Set shell = WScript.CreateObject("WScript.Shell")
windir=shell.ExpandEnvironmentStrings("%SYSTEMROOT%")
...

Le principe des variables d'environnement se retrouve dans TOUS les systèmes
d'exploitation.
Seule la syntaxe diffère légèrement (sous UNIX, le caractère est "$" au lieu
de "%")


Certaines de ces variables sont prédéfinies (par le système), telles que :

%PATH%
liste des répertoires par défaut
%COMSPEC%
nom du processeur de commandes
%SYTEMROOT%
nom du répertoire racine du système
%WINDIR%
identique à %SYTEMROOT%
(utilisé pour compatibilité avec Windows 9x/ME)
%USERNAME%
nom du compte utilisateur en cours
%COMPUTERNAME%
nom NetBIOS de l'ordinateur
%USERDOMAIN%
au choix :
- nom NetBIOS de l'ordinateur (workgroup)
- nom du domaine (domaine)
%SYSTEMDRIVE%
nom du disque contenant %SYTEMROOT%
%HOMEDRIVE%
identique à %SYSTEMDRIVE%
%USERPROFILE%
le chemin complet du dossier de l'utilisateur en cours
%HOMEPATH%
identique à %USERPROFILE%
%ALLUSERPROFILE%
chemin complet du dossier commun à tous les utilisateurs
%PROGRAMFILES%
chemin par défaut des programmes
%PATHEXT%
liste des extensions de fichiers considérés comme exécutables
(= lancés simplement en tapant leur nom)
%TEMP%
chemin des fichiers temporaires
%TMP%
chemin des fichiers temporaires
(généralement identique à %TEMP%)
%PROCESSOR_IDENTIFIER%
description du microprocesseur utilisé
...
Toutes ces variables sont STATIQUES

Il existe quelques variables DYNAMIQUES (en réalité des fonctions) dont le
contenu est susceptible de varier :
%DATE%
date en cours
%TIME%
heure en cours
%CD%
répertoire en cours
%RANDOM%
nombre aléatoire compris entre 0 et 32767
%ERRORLEVEL%
code de retour de la dernière commande
%CMDEXTVERSION%
n° de version du processeur de commandes en cours
%CMDCMDLINE%
ligen de commande qui a appelé le processeur de commandes


L'utilisateur peut définir aussi ses propres variables

1) par la commande SET :
-------------------------
SET <nom-de-variable>=<contenu-de-la-variable>


SET toto=machin
echo %toto%

Pour plus d'infos sur la commande SET (qui comporte des tas d'options très
intéressantes), consulter l'aide en ligne par al commande :
SET /?

2) depuis le panneau de config Système :
----------------------------------------
onglet "Avancé"
bouton "Variables d'environnement"

3) depuis la BDR (pour les "accros" !) :
-------------------------------------
HKCUEnvironment
HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Publicité
Poster une réponse
Anonyme