Windows批处理文件夹中是否存在快捷方式?
您可以使用"%USERPROFILE%\Desktop"
但我不知道从哪个版本的Windows是内置的。
如果你想真正夹其中桌面位于然后在巴赫
FOR/F “跳过= 2个令牌= 3 * delims =” %%在 (“REG查询使用此代码 “HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\用户 Shell文件夹”/ V桌面“)并设置 DesktopFolder = ”%%一个“
这就要求REG.EXE可用(再次,我不知道它是从哪个版本的窗口),它会将DesktopFolder变量设置为桌面的路径。
如果您确实需要有一个批处理文件,但希望使用Windows脚本宿主的能力,你可能会想尝试一个WSH/batch hybrid
批次/ WSH混合:
@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
见ShellSpecialFolderConstants如果您需要获取其他shell文件夹的路径
@JohannesRössel:为什么不自己做出答案?他要求一个批处理文件,这就是我想给他的,没有外部文件。 – Anders 2010-04-11 12:22:13
啊,对不起。没有足够好的阅读你的链接。我只是试图提供代码,因为一句话通常不是很有帮助。无论如何,我会把WSH的东西放在一个单独的文件中,因为这看起来很麻烦。它也没有优于单独的文件,因为它仍然依赖于未通过GP禁用WSH。一旦你的批处理文件变大了,你可能会想要提高可读性。还要注意,如果我在这里发表评论,那么丑陋的* @名称*的东西才有效;这不是解决本网站任何人的一般手段。 – Joey 2010-04-11 14:06:49
@JohannesRössel:1个单独文件与2个独立文件没有优势?至于@name,我知道,这是我唯一的选择。 – Anders 2010-04-11 14:31:47
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);
'WScript.Echo(WScript.CreateObject(“WScript.Shell”)) .SpecialFolders(“Desktop”));'更短,看起来更易读 – 2012-06-10 13:48:32
set UserDesktop=%UserProfile%\Desktop
if exist %Public% (
set SharedDesktop=%Public%\Desktop
) else (
set SharedDesktop=%AllUsersProfile%\Desktop
)
所以,现在你可以使用本地变量
%UserDesktop%
和%SharedDesktop%
SharedDesktop第一种情况是Windows Vista和上述其他是XP
PS:使用前这些变量应该引用“%UserDesktop%”,因为用户名必须有空格,比如... \ Bill Gates \ ...或\ Documents and sett ings \ ...
如果将桌面移动到另一个位置“桌面>属性>位置” – 2015-07-11 09:26:56
'%USERPROFILE%'已经可以在XP上使用(也可能更早)。 – Vlad 2010-04-07 09:41:02
它说找不到'C:\ Documents' – user198729 2010-04-07 09:46:18
请注意,这不适用于桌面文件夹具有其他名称的本地化Windows版本。 – Helen 2010-04-07 09:46:42