回答
您可以使用"%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
- 1. 快捷方式到批处理文件
- 2. 如何使批处理文件夹的快捷方式
- 3. 创建批处理和快捷方式的快捷方式
- 4. 检查批处理或vbs中是否存在快捷方式的目标?
- 5. 从快捷方式执行批处理文件
- 6. 从批处理文件创建EXE的快捷方式
- 7. 创建批处理文件来创建快捷方式
- 8. 创建运行批处理文件的快捷方式
- 9. 使用批处理文件创建exe的快捷方式
- 10. 如何在Windows中检查快捷方式是否存在?
- 11. 如何在Windows Installer中创建文件夹的快捷方式?
- 12. 如何在Windows中创建文件夹的快捷方式?
- 13. 在Windows批处理文件中打开文本文件和程序快捷方式
- 14. 从快捷方式编辑批处理文件会导致快捷方式的路径发生变化
- 15. 在Windows上创建文件夹快捷方式程序
- 16. 启动文件夹的快捷方式
- 17. TortoiseSVN文件夹 - 快捷方式
- 18. 如何启动Windows CE设备中最小化的批处理文件(使用另一批或快捷方式)?
- 19. 在快速启动文件夹中创建快捷方式
- 20. 带批处理的Windows批处理文件夹循环
- 21. 在codeigniter中的文件上传快捷方式文件夹
- 22. Shell/Bash快捷方式批量重命名文件夹中的文件
- 23. 如何创建一个快捷方式来启动一个文件夹的批处理文件?
- 24. 如何处理键盘快捷方式(Command +控件等快捷方式)?
- 25. 如何使安装程序创建快捷方式文档和文件夹的快捷方式(Windows 8)
- 26. 什么是MS Win32 API知道文件夹是快捷方式?
- 27. 如何检测文件夹是否为空(Windows批处理文件)?
- 28. 用于检查文件是否存在的Windows批处理文件
- 29. 如何在Windows下使用批处理文件为Perl程序创建快捷方式?
- 30. Wix:添加不在子文件夹中的快捷方式!
'%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