我已经看过类似帖子的答案,尽管问题看起来相同,但答案无法满足我的需求。
我想要做的是通过关闭时运行的批处理文件捕获打开的 Windows 资源管理器路径的列表。
我的原因是因为重新启动时重新打开资源管理器进程的设置并不总是有效,尤其是当计算机以不良状态关闭时。在这些情况下,自动化过程可能也不会运行,但上次关闭的列表将有助于重建打开的文件夹。
我通常使用 PERL 进行解析,使用 DOS 进行脚本编写,尽管我使用过其他语言。我正在尝试做的自然语言脚本是:
a) 提取正在运行的 explorer.exe 命令行列表,包括作为子进程运行的命令行。
b) 将文件路径解析为列表 (PERL)。
c) 保存带有日期戳的进程日志文件。
d) 通过在列出的路径之前添加 explorer.exe 命令来创建批处理文件脚本。
无论操作系统是否未能重新打开文件夹,步骤 C 都会提供正在处理的内容的记录。
如果启动过程失败,则可以使用步骤D,只需单击一下即可将文件夹重建为最新的已知状态。
我试过的:
最近的文件夹等-这些列表取决于日期,即使前一天已重新打开,它们也不包括正在进行的项目中的文件夹。包含这些文件夹的唯一方法是最近手动打开它们。此外,重新打开文件夹是一项广泛的手动任务,可以轻松地将列表转换为批处理文件以一次性打开它们。
CMD 中的任务列表 - 此功能用于从“详细信息”选项卡而不是“进程”选项卡中提取信息。在 Windows 资源管理器的情况下,这意味着每个资源管理器打开时都会显示其自己的进程,但除了最近的进程之外,任何共享进程的资源管理器窗口都将被忽略。尽管设置为始终在新进程中打开,但由于“在新窗口中打开”忽略了该设置,因此至少有一些最终处于这种共享状态。这些共享进程资源管理器在进程选项卡上分解为子进程,每个子进程都有文件夹路径。任务列表会忽略该信息。
我在注册表中搜索了列表的任何存储空间,但找不到任何内容。对设置与注册表频繁交互的内容并不感到兴奋,但我尝试了所有我能想到的方法。
我确实尝试了一些我在网上找到的 VB 脚本,但无法让它们正常运行。我不太了解 VB,无法弄清楚原因,而且我的尝试现在很混乱,所以我认为在这里发布它们中的任何一个都没有帮助。这是一条我愿意走的路。我只是没有发现任何成功的事情,也无法自己编写程序。
注意:我目前使用截图工具来制作列表的图像,但这是有限的,因为它是手动的,所以依赖于记忆,因为我必须手动输入文件夹名称或在资源管理器中浏览到每个文件夹才能恢复状态。
感谢您帮助我找到解决方案。我发现很多人都在问(在 StackExchange 和其他地方),所以这个答案应该不仅仅对我的情况有用。
使用powershell怎么样?像这样捕获打开的资源管理器位置...
(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object {
$_.Document.Folder.Self.Path
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句