C:\Documents and Settings\Administrator\Desktop
我不想每次都输入上面的内容来引用桌面上的文件
答案 0 :(得分:8)
您可以使用"%USERPROFILE%\Desktop"
,但我不知道它是从哪个版本的Windows构建的。
如果您想要桌面所在的真实文件夹,请在bach中使用此代码
for / F“skip = 2 tokens = 3 * delims =”%% a in('reg query “HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\用户 Shell文件夹“/ v桌面”)设置 DesktopFolder = “%%一个”
这需要reg.exe可用(再次,我不知道它在哪个版本的Window),它会将DesktopFolder变量设置为桌面的路径。
答案 1 :(得分:6)
Anders的混合体可以更加简单和可读,使用Tom Lavedas所述的方法hybrid scripting。
@if (@X)==(@Y) @goto :Dummy @end/* Batch part
@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "delims=" %%x in ('cscript //E:JScript //nologo "%~f0"') do set desk=%%x
echo desktop path is %desk%
goto :EOF
***** Now JScript begins *****/
WScript.Echo(WScript.CreateObject("Shell.Application").Namespace(16).Self.Path);
答案 2 :(得分:1)
如果你绝对需要一个批处理文件,但想要使用windows脚本主机的强大功能,你可能想尝试WSH/batch hybrid
Batch / WSH hybrid:
@if (1==1) @if(1==0) @ELSE
@echo off&SETLOCAL ENABLEEXTENSIONS
for /f "delims=" %%x in ('cscript //E:JScript //nologo "%~f0"') do set desk=%%x
echo desktop path is %desk%
@goto :EOF
@end @ELSE
WScript.Echo(WScript.CreateObject("Shell.Application").Namespace(16).Self.Path);
@end
如果您需要获取其他一些shell文件夹的路径,请参阅ShellSpecialFolderConstants
答案 3 :(得分:1)
set UserDesktop=%UserProfile%\Desktop
if exist %Public% (
set SharedDesktop=%Public%\Desktop
) else (
set SharedDesktop=%AllUsersProfile%\Desktop
)
所以现在你可以使用局部变量
%UserDesktop%
和%SharedDesktop%
SharedDesktop第一种情况适用于Vista,而上面则适用于XP
ps:在使用这些变量之前,你应该引用“%UserDesktop%”,因为用户名必须有空格,比如... \ Bill Gates \ ...或\ Documents and settings \ ...