Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Dans le message :,
MV71 a pris la peine d'écrire ce qui suit :Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Il faut faire appel pour cela aux "variables d'environnement"
Le principe des variables d'environnement se retrouve dans TOUS les
systèmes d'exploitation.
Ce sont des variables dont le contenu (une chaine de caractères) est
accessible de n'importe où :
- fenêtre de commande (console)
- système d'exploitation (pour ses besoins internes)
- programme utilisateur (quelconque, écrit en C, Delphi, C#, ...)
- script (quelconque, écrit en VBS, JS, Perl, Python, PHP,..)
Seule la syntaxe diffère légèrement.
Dans les OS d'origine Microsoft, depuis que MSDOS existe (1981), une
"variable d'environnement" est défiie par un nom encadrée par le caractère
"%" (dans une fenêtre de commande)
Sous UNIX (et dérivés : Linux, FreeBSD, ..) le caractère est "$" au lieu
de "%" (et uniquement en tête du nom)*
Sous Windows :
Les variables d'environnement "système" (communes à tous les comptes) sont
stockées dans la clef :
HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
Ainsi que, éventuellement, celles déclarées dans Autoexec.bat
par les commandes :
SET variable=contenu
....
et aussi
PATH .......
Les variables d'environnement "utilisateur" (propres à chaque compte) sont
stockées dans la clef :
HKCUEnvironment
Exemples (variable %SYSTEMROOT%, qui donne le répertoire principal du
système)
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%")
...
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 %SYSTEMROOT%
%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%
ligne 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 la 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
4) Par programmation (applis ou scripts)
Exemple :
On considère la variable %PATH%, qui (rappel) contient la liste des
dossiers que le système doit explorer si aucun nom de dossier n'est donné
dans une commande.
Le script ci-dessous ("AddPath.vbs") sert à ajouter au "PATH" le dossier
passé en paramètres
----------- couper ici -----------
Set Args= Wscript.Arguments
if args.count=0 then wscript.quit
Set fso=Wscript.GetObject("Scripting.FileSystemObject")
Dossier=args(0)
If not fso.FolderExists(Dossier) then
Wscript.echo "Le dossier " & Dossier & " n'existe pas!"
Wscript.quit
end if
Set shell = WScript.CreateObject("WScript.Shell")
Set env=Shell.Environment("system")
env("Path")=env("Path") & ";" & Dossier
----------- couper ici -----------
Exemple d'utilisation :
cscript h:outilsscriptsaddpath.vbs "c:trucs à la
conteststrucmuche"
(les guillemets sont indispensables s'il y a des espaces dans le nom du
dossier)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] -
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :u27m9q12FHA.3704@TK2MSFTNGP10.phx.gbl,
MV71 <r.viennet@laposte.net> a pris la peine d'écrire ce qui suit :
Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Il faut faire appel pour cela aux "variables d'environnement"
Le principe des variables d'environnement se retrouve dans TOUS les
systèmes d'exploitation.
Ce sont des variables dont le contenu (une chaine de caractères) est
accessible de n'importe où :
- fenêtre de commande (console)
- système d'exploitation (pour ses besoins internes)
- programme utilisateur (quelconque, écrit en C, Delphi, C#, ...)
- script (quelconque, écrit en VBS, JS, Perl, Python, PHP,..)
Seule la syntaxe diffère légèrement.
Dans les OS d'origine Microsoft, depuis que MSDOS existe (1981), une
"variable d'environnement" est défiie par un nom encadrée par le caractère
"%" (dans une fenêtre de commande)
Sous UNIX (et dérivés : Linux, FreeBSD, ..) le caractère est "$" au lieu
de "%" (et uniquement en tête du nom)*
Sous Windows :
Les variables d'environnement "système" (communes à tous les comptes) sont
stockées dans la clef :
HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
Ainsi que, éventuellement, celles déclarées dans Autoexec.bat
par les commandes :
SET variable=contenu
....
et aussi
PATH .......
Les variables d'environnement "utilisateur" (propres à chaque compte) sont
stockées dans la clef :
HKCUEnvironment
Exemples (variable %SYSTEMROOT%, qui donne le répertoire principal du
système)
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%")
...
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 %SYSTEMROOT%
%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%
ligne 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 la 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
4) Par programmation (applis ou scripts)
Exemple :
On considère la variable %PATH%, qui (rappel) contient la liste des
dossiers que le système doit explorer si aucun nom de dossier n'est donné
dans une commande.
Le script ci-dessous ("AddPath.vbs") sert à ajouter au "PATH" le dossier
passé en paramètres
----------- couper ici -----------
Set Args= Wscript.Arguments
if args.count=0 then wscript.quit
Set fso=Wscript.GetObject("Scripting.FileSystemObject")
Dossier=args(0)
If not fso.FolderExists(Dossier) then
Wscript.echo "Le dossier " & Dossier & " n'existe pas!"
Wscript.quit
end if
Set shell = WScript.CreateObject("WScript.Shell")
Set env=Shell.Environment("system")
env("Path")=env("Path") & ";" & Dossier
----------- couper ici -----------
Exemple d'utilisation :
cscript h:outilsscriptsaddpath.vbs "c:trucs à la
conteststrucmuche"
(les guillemets sont indispensables s'il y a des espaces dans le nom du
dossier)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - Jean-Claude.Bellamy@wanadoo.fr
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :,
MV71 a pris la peine d'écrire ce qui suit :Bonsoir
Je cherche la syntaxe pour spécifier un chemin relatif pour que les
liens continuent de fonctionner même avec des changements de support
pourvu que l'aborescence reste la même.
Il faut faire appel pour cela aux "variables d'environnement"
Le principe des variables d'environnement se retrouve dans TOUS les
systèmes d'exploitation.
Ce sont des variables dont le contenu (une chaine de caractères) est
accessible de n'importe où :
- fenêtre de commande (console)
- système d'exploitation (pour ses besoins internes)
- programme utilisateur (quelconque, écrit en C, Delphi, C#, ...)
- script (quelconque, écrit en VBS, JS, Perl, Python, PHP,..)
Seule la syntaxe diffère légèrement.
Dans les OS d'origine Microsoft, depuis que MSDOS existe (1981), une
"variable d'environnement" est défiie par un nom encadrée par le caractère
"%" (dans une fenêtre de commande)
Sous UNIX (et dérivés : Linux, FreeBSD, ..) le caractère est "$" au lieu
de "%" (et uniquement en tête du nom)*
Sous Windows :
Les variables d'environnement "système" (communes à tous les comptes) sont
stockées dans la clef :
HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
Ainsi que, éventuellement, celles déclarées dans Autoexec.bat
par les commandes :
SET variable=contenu
....
et aussi
PATH .......
Les variables d'environnement "utilisateur" (propres à chaque compte) sont
stockées dans la clef :
HKCUEnvironment
Exemples (variable %SYSTEMROOT%, qui donne le répertoire principal du
système)
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%")
...
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 %SYSTEMROOT%
%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%
ligne 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 la 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
4) Par programmation (applis ou scripts)
Exemple :
On considère la variable %PATH%, qui (rappel) contient la liste des
dossiers que le système doit explorer si aucun nom de dossier n'est donné
dans une commande.
Le script ci-dessous ("AddPath.vbs") sert à ajouter au "PATH" le dossier
passé en paramètres
----------- couper ici -----------
Set Args= Wscript.Arguments
if args.count=0 then wscript.quit
Set fso=Wscript.GetObject("Scripting.FileSystemObject")
Dossier=args(0)
If not fso.FolderExists(Dossier) then
Wscript.echo "Le dossier " & Dossier & " n'existe pas!"
Wscript.quit
end if
Set shell = WScript.CreateObject("WScript.Shell")
Set env=Shell.Environment("system")
env("Path")=env("Path") & ";" & Dossier
----------- couper ici -----------
Exemple d'utilisation :
cscript h:outilsscriptsaddpath.vbs "c:trucs à la
conteststrucmuche"
(les guillemets sont indispensables s'il y a des espaces dans le nom du
dossier)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] -
http://www.bellamyjc.org ou http://jc.bellamy.free.fr