Jac*_*111 10 batch-file windows-7
我正在做一个简单的批处理文件,将位于批处理文件相同路径下的文件夹和文件复制到桌面.我可以轻松地获取批处理文件所在的路径
%~dp0
Run Code Online (Sandbox Code Playgroud)
但我想知道如何获得用户桌面的路径(我使用的是Widows 7 Ultimate)
有什么建议?
fox*_*ive 17
这是当前用户桌面的位置:
%userprofile%\desktop
Run Code Online (Sandbox Code Playgroud)
小智 15
如果桌面位置在另一个文件夹中,那么这将是正确答案:
批号字符串:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
如果您有非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
Run Code Online (Sandbox Code Playgroud)
然后使用:
echo %DESKTOP%
Run Code Online (Sandbox Code Playgroud)
小智 3
我觉得这个也应该没问题
%systemdrive%\Documents and Settings\All Users\Desktop
Run Code Online (Sandbox Code Playgroud)
问候