获取所有打开的资源管理器的报告 windows
get report of all open explorer windows
我想获取所有打开的资源管理器 windows 标题和当前路径的报告。此问题的当前路径部分已用 C# 回答 here,但我想将其用于 powershell,但不确定如何调整它。
我不确定如何显示其中的 window 标题部分。
有人可以帮忙吗。
我觉得你在找这样的东西:
$app = New-Object -COM 'Shell.Application'
$app.Windows() | Select-Object LocationURL
AFAICS window objects 没有标题 属性,但您可以通过 window 句柄 ID 从 Get-Process
获取该信息:
function Get-WindowTitle($handle) {
Get-Process |
Where-Object { $_.MainWindowHandle -eq $handle } |
Select-Object -Expand MainWindowTitle
}
$app = New-Object -COM 'Shell.Application'
$app.Windows() |
Select-Object LocationURL, @{n='Title';e={Get-WindowTitle $_.HWND}}
Ansgar Wiechers' answer 很有帮助,但文件资源管理器 windows 的 标题 不一定包含所显示位置(文件夹)的完整路径.
有点晦涩,就是.Windows()
方法返回的windowobject的.Document.Folder.Self.Path
属性 Shell.Application
包含完整、本地或 UNC 路径的 COM object。
因此,下面列出了所有打开的资源管理器的完整路径windows:
(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object {
$_.Document.Folder.Self.Path
}
注意:文件资源管理器的 "Quick access" 等特殊位置由 ::
前缀的 GUID 表示;例如,::{679F85CB-0220-4080-B29B-5540CC05AAB6}
我想获取所有打开的资源管理器 windows 标题和当前路径的报告。此问题的当前路径部分已用 C# 回答 here,但我想将其用于 powershell,但不确定如何调整它。 我不确定如何显示其中的 window 标题部分。
有人可以帮忙吗。
我觉得你在找这样的东西:
$app = New-Object -COM 'Shell.Application'
$app.Windows() | Select-Object LocationURL
AFAICS window objects 没有标题 属性,但您可以通过 window 句柄 ID 从 Get-Process
获取该信息:
function Get-WindowTitle($handle) {
Get-Process |
Where-Object { $_.MainWindowHandle -eq $handle } |
Select-Object -Expand MainWindowTitle
}
$app = New-Object -COM 'Shell.Application'
$app.Windows() |
Select-Object LocationURL, @{n='Title';e={Get-WindowTitle $_.HWND}}
Ansgar Wiechers' answer 很有帮助,但文件资源管理器 windows 的 标题 不一定包含所显示位置(文件夹)的完整路径.
有点晦涩,就是.Windows()
方法返回的windowobject的.Document.Folder.Self.Path
属性 Shell.Application
包含完整、本地或 UNC 路径的 COM object。
因此,下面列出了所有打开的资源管理器的完整路径windows:
(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object {
$_.Document.Folder.Self.Path
}
注意:文件资源管理器的 "Quick access" 等特殊位置由 ::
前缀的 GUID 表示;例如,::{679F85CB-0220-4080-B29B-5540CC05AAB6}