web-dev-qa-db-fra.com

chemin du bureau de l'utilisateur dans des fichiers de commandes

Je fais un simple fichier de commandes pour copier des dossiers et des fichiers situés sous le même chemin des fichiers de commandes sur le bureau. Je peux facilement obtenir le chemin où se trouve le fichier de commandes à l'aide de 

%~dp0

mais je veux savoir comment obtenir le chemin du bureau de l'utilisateur (j'utilise Widows 7 Ultimate)

Aucune suggestion? 

7
Jack_111

Je pense que celui-ci devrait être ok aussi

%systemdrive%\Documents and Settings\All Users\Desktop

Cordialement

1
user2747076

Je suppose que vous êtes sous Windows, donc %USERPROFILE%\Desktop devrait être ok

60
Mali

C'est l'emplacement du bureau des utilisateurs actuels:

%userprofile%\desktop
16
foxidrive

Si Bureau emplacements dans un dossier différent seulement cette réponse sera correcte:

Batch string:

for /f "usebackq tokens=3*" %%D IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D

V2 (Fonctionne avec des espaces) 4.10.2016:

for /f "usebackq tokens=1,2,*" %%B IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D

Si vous avez des symboles non-ASCII, vous devez également convertir le codage ANSI en OEM, exemple pour cyrillic:

CHCP 1251 >Nul
for /f "usebackq tokens=1,2,*" %%B IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D
CHCP 866 >Nul
for /f "delims=" %%i IN ('echo %DESKTOP%') do set DESKTOP=%%i

Ensuite, utilisez simplement:

echo %DESKTOP%
12
kgimpel

J'ai trouvé la réponse 

Regedit /e /a dd.txt       

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

find /i  dd.txt  "Desktop" >d.txt
For /F  "tokens=2 delims==" %%a in (d.txt) do set mydesktop=%%a
3
Jack_111

Environ ("USERPROFILE") & "\ Desktop"

0
panchtox