我想获得所有开放资源管理器窗口标题和当前路径的报告。当前路径的一部分问题是使用C#回答https://msdn.microsoft.com/en-us/library/windows/apps/jj676791.aspx,但是我想将它用于powershell并且不确定如何调整它。 我不知道如何将窗口标题带出来。
有人可以帮忙吗。
答案 0 :(得分:5)
听起来像你正在寻找这样的东西:
$app = New-Object -COM 'Shell.Application'
$app.Windows() | Select-Object LocationURL
AFAICS窗口对象没有title属性,但您可以通过窗口句柄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}}
答案 1 :(得分:0)
Ansgar Wiechers' answer很有帮助,但是“文件资源管理器”窗口的 title 不一定包含所显示位置(文件夹)的完整路径。
有些晦涩难懂,这是.Document.Folder.Self.Path
COM对象的.Windows()
方法返回的窗口对象的Shell.Application
属性,其中包含完整,本地或UNC路径< / strong>。
因此,以下列出了所有打开的资源管理器窗口的完整路径:
(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object {
$_.Document.Folder.Self.Path
}
注意:特殊位置(例如文件浏览器的“快速访问”)由带有::
的GUID表示;例如::{679F85CB-0220-4080-B29B-5540CC05AAB6}