Je connais la variable d'environnement définie par le système %USERPROFILE%
sous Windows XP (et Vista et Windows 7). Existe-t-il une variable d'environnement définie par le système qui pointe vers l'emplacement du répertoire "Mes documents"? Sur XP par défaut, c'est %USERPROFILE%\My Documents
et sur Win 7, c'est %USERPROFILE%\Documents
. Je voulais juste éviter de devoir tester la version du système d'exploitation dans un script Powershell si je pouvais l'éviter.
Réponses
Trop de publicités?Pour .NET le suivant est vrai (c'est à dire pas applicable dans toutes les applications windows):
Comme une réponse, il n'y a pas de Variable d'Environnement pointant vers Mes Documents, mais il n'y a Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
(C#) pour .NET.
Je suis l'ajout de cette réponse étant donné que cette question revient quand googler pour C#, les variables d'environnement et mes documents et Justin réponse ne contient pas la ligne de code :)
À l'aide de l'mentionnés ci-dessus de la ligne de code est la voie privilégiée pour accéder à mes documents .NET :)
Copiez-collez cette ligne de C# usage:
var directoryNameOfMyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
A noter que C# a besoin d'un capital D dans Mesdocuments.
Sur mon défaut-installation de XP, il n'y a pas de variable d'environnement pour que. Vous pouvez dresser la liste de toutes les variables avec la commande "set" (pas de paramètres ) dans la ligne de commande. Donc, probablement que vous avez à faire un test.
Si vous ne voulez pas tester pour la version de l'OS, vous pouvez simplement vérifier si les "Documents" existe et si non, alors essayer de "Mes Documents" ou vice versa. Ce n'est pas parfait cependant, parce que s/o pourrait avoir un dossier "Documents" sur sa machine XP.
Btw: mon système est allemand, donc le dossier est appelé "Dokumente". Vous pourriez avoir besoin de prendre en compte.
EDIT: Le chemin d'accès à ce dossier est stocké dans "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" en vertu de "Personnel". Vous avez besoin d'accès au registre bien.
Source: Microsoft
(Juste pour réitérer les réponses précédentes) Il n'y a pas de variable d'environnement fournie prête à l'emploi (WinXP) pour le répertoire "Mes documents".
Cependant, vous pouvez définir une variable à l'aide de la commande suivante:
FOR /F "tokens=3* delims= " %a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') do (set mydocuments=%a)
Ce qui vous donnerait alors:
C:\>echo mydocuments=%mydocuments%
mydocuments=C:\pathto\My Documents
Si vous tapez:
set
Dans une invite de commande, vous obtiendrez une liste de toutes les variables d'environnement définies sur votre système.
En regardant celles définies sur la mienne (Windows 7 Home Premium) aucun d'entre eux semblent pointer vers Mes Documents.
FYI:
Le SHGetSpecialFolderPath) la fonction peut être utilisée pour obtenir le chemin d'accès au répertoire Mes Documents. Sinon l' Environnement.GetFolderPath méthode peut être utilisée sous .Net