如何获取资源管理器中当前打开的文件夹?

如何获取资源管理器中当前打开的文件夹?

打开的文件夹显示在任务管理器中。也许有办法使用批处理或 powershell 或第三方命令行来访问此信息?

explorer-任务管理器.webp

我还启用了登录时恢复以前的文件夹窗口选项... S5032-文件夹-选项.webp

所以我想知道之前打开的文件夹 windows 的路径保存在哪里...在 regedit 中?还是在某个临时文件中?

答案1

不知道关机时文件夹保存在哪里,但要获取打开文件夹的信息电源外壳,使用shell.应用程序COM 对象:

@((New-Object -com shell.application).Windows()).Document.Folder | select Title , { $_.Self.Path }

示例输出

PS C:\...\keith>@((New-Object -com shell.application).Windows()).Document.Folder | select Title , { $_.Self.Path }

Title         $_.Self.Path
-----        --------------
This PC      ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Quick access ::{679F85CB-0220-4080-B29B-5540CC05AAB6}
Windows (C:) C:\
SendTo       C:\Users\keith\AppData\Roaming\Microsoft\Windows\SendTo


为了获取虚拟文件夹的人性化名称以及查看完整的命名空间路径,您可以定义一个递归函数来为您提供完整路径(植根于虚拟桌面):

Function NSPath ($oFldr)
{
    If ($oFldr.ParentFolder )
    {
        '{0}\{1}'-f (NSPath $oFldr.ParentFolder), $oFldr.Title
    }
    Else
    {
        '\' # or $oFldr.Title
    }
}

然后像这样使用该函数:

@((New-Object -com shell.application).Windows()).Document.Folder | %{ NSPath $_ }

输出:

PS C:\...\keith>@($shell.Windows()).Document.Folder | %{ NSPath $_ }
\\This PC
\\Quick access
\\Keith Miller\Documents
\\This PC\Documents
\\This PC\Windows (C:)\Users\keith\Documents

为了便于在批处理中使用,请将该函数添加到您的 PowerShell 配置文件中,如下所示:

@'
New-Object -com shell.application
Function NSPath ($oFldr)
{
    If ($oFldr.ParentFolder )
    {
        '{0}\{1}'-f (NSPath $oFldr.ParentFolder), $oFldr.Title
    }
    Else
    {
        '\' # or $oFldr.Title
    }
}
'@ | add-content $PROFILE

然后,无论何时启动,该函数NSPath和 COM 对象都$Shell可以使用电源外壳

相关内容