批处理文件中用户桌面的路径

时间:2013-09-05 07:00:16

标签: batch-file windows-7

我正在做一个简单的批处理文件,将位于批处理文件相同路径下的文件夹和文件复制到桌面。我可以使用

轻松获取批处理文件所在的路径
%~dp0

但我想知道如何获取用户桌面的路径(我正在使用Widows 7 Ultimate)

有什么建议吗?

6 个答案:

答案 0 :(得分:64)

我想你是在windows环境下,所以%USERPROFILE%\Desktop应该没问题

答案 1 :(得分:16)

这是当前用户桌面的位置:

%userprofile%\desktop

答案 2 :(得分:14)

如果不同文件夹中的桌面位置,只有这样才能正确答案:

批次字符串:

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(适用于空格)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

如果你有非ASCII符号,你还需要将ANSI编码转换为OEM,例如西里尔文:

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

然后使用:

echo %DESKTOP%

答案 3 :(得分:3)

我找到了答案

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

答案 4 :(得分:1)

我认为这个也应该没问题

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

此致

答案 5 :(得分:0)

Environ(" USERPROFILE")& " \桌面"

相关问题