在.vbs中查找当前用户C:\ users \%USERNAME%\ ...的路径

我不会设置objFolder路径,但无法获取当前用户名

objShell.NameSpace(C:\users\%CurrentUser%\AppData)

代码:

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\users\%username%\AppData\Roaming\microsoft\Windows")

还是可以替换objShell.NameSpace("C:\somepath")的其他方法?

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\users\%username%\AppData\Roaming\microsoft\Windows")
bajo42 回答:在.vbs中查找当前用户C:\ users \%USERNAME%\ ...的路径

如果您要使用Shell.Namespace,则可能需要阅读documentation。 它说:

  

vDir [in]

     

类型:变体

     

要为其创建Folder对象的文件夹。这可以是一个字符串   指定文件夹或其中之一的路径    ShellSpecialFolderConstants 值。请注意找到的常量名称   ShellSpecialFolderConstants在Visual Basic中可用,但没有   在VBScript或JScript中。在这种情况下,数值必须为   代替它们。

在遵循link ShellSpecialFolderConstants 时 你会发现

  

ssfSTARTMENU 0x0b(11)。包含“开始”菜单的文件系统目录   项目。典型路径是C:\ Users \ username \ AppData \ Roaming \ Microsoft \ Windows \ Start菜单。

我比您所寻找的要深一层。因此,您可以从该文件夹上一层,然后找到所需的文件夹。

类似的事情应该起作用:

option explicit

const ssfSTARTMENU = 11

sub main
    msgbox getWindowsFolder().Self.Path
end sub

function getWindowsFolder()
    dim shell
    Set shell = CreateObject("Shell.Application")
    dim startMenuFolder
    set startMenuFolder = shell.Namespace(ssfSTARTMENU)
    set getWindowsFolder = startMenuFolder.ParentFolder
end function

main
本文链接:https://www.f2er.com/3163858.html

大家都在问