如果不在我的文件中直接使用注册表,如何从explorer.exe shell:<dir>
获取ArrayList<Hashmap<String,String>>
到批处理文件中的变量?
path似乎没有用。
答案 0 :(得分:1)
您可以使用Windows脚本宿主语言获取WshShell.SpecialFolders
property。示例批处理+ JScript混合解决方案(应该给出.bat扩展名):
@if (@CodeSection == @Batch) @then
@echo off & setlocal
call :getSpecialFolder AllUsersDesktop
echo %AllUsersDesktop%
call :getSpecialFolder Fonts
echo %Fonts%
goto :EOF
:getSpecialFolder <folderName=returnValue>
for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0" "%~1"') do set "%~1=%%I"
goto :EOF
@end // end batch begin JScript
WSH.Echo(WSH.CreateObject('WScript.Shell').SpecialFolders(WSH.Arguments(0)));
来自MSDN文档:
WshSpecialFolders对象是一个集合。它包含整个Windows特殊文件夹集,例如Desktop文件夹,“开始”菜单文件夹和“个人文档”文件夹。特殊文件夹名称用于索引集合以检索所需的特殊文件夹。如果请求的文件夹(strFolderName)不可用,则SpecialFolders属性返回空字符串。例如,Windows 95没有AllUsersDesktop文件夹,如果strFolderName是AllUsersDesktop,则返回空字符串。
可以使用以下特殊文件夹:
- AllUsersDesktop
- AllUsersStartMenu
- AllUsersPrograms
- AllUsersStartup
- 桌面
- 收藏夹
- 字体
- 我的文档
- NETHOOD
- PRINTHOOD
- 程序
- 最近
- 的SendTo
- 的StartMenu
- 启动
- 模板