新手编程求助:自动刷新Edge站点的PowerShell脚本无法正常运行
问题原因
你的代码存在两个核心问题导致无法生效:
- 你获取的
$edge是所有匹配到的Edge COM对象集合,不能直接对集合调用Refresh()方法,需要遍历每个对象单独执行刷新操作 - 仅在脚本启动时获取一次Edge对象,运行过程中如果关闭原有窗口、新开窗口,旧的对象就会失效,后续刷新操作不会作用于新窗口
修正后代码
Start-Sleep -Seconds 5 while($true) { Start-Sleep -Seconds 10 try { # 每次刷新前重新获取当前运行的所有Edge窗口对象 $edgeWindows = (New-Object -COM "Shell.Application").Windows() | Where-Object { $_.Name -like "*Microsoft Edge*" } # 遍历所有窗口执行刷新 foreach ($win in $edgeWindows) { $win.Refresh() } } catch { exit } }
可选优化:仅刷新特定站点的标签
如果不需要刷新所有Edge窗口,只想刷新特定站点的标签,可以在过滤条件中增加URL匹配规则,比如只刷新地址包含baidu.com的窗口:
$edgeWindows = (New-Object -COM "Shell.Application").Windows() | Where-Object { $_.Name -like "*Microsoft Edge*" -and $_.LocationURL -like "*baidu.com*" }
内容的提问来源于stack exchange,提问作者Maël Cabon
相关产品推荐
相关产品推荐

