我正在做一个简单的批处理文件,将位于批处理文件相同路径下的文件夹和文件复制到桌面。我可以使用
轻松获取批处理文件所在的路径%~dp0
但我想知道如何获取用户桌面的路径(我正在使用Widows 7 Ultimate)
有什么建议吗?
答案 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")& " \桌面"