【发布时间】:2020-10-03 01:39:03
【问题描述】:
我正在自动刷新图标缓存,我发现TaskKill 和Stop-Process 之间存在有趣的区别。一般来说,我更喜欢使用原生 PowerShell 而不是从 PowerShell 启动的 DOS 命令行内容,所以我宁愿使用 Stop-Process -name:explorer 而不是 Start-Process TaskKill "/f /im explorer.exe" -NoNewWindow 来停止 Explorer.exe,这样 DB 文件就不再“正在使用”并且可以被删除。
但是,前者允许 Explorer.exe 立即重新启动,因此我需要删除的图标数据库文件仍在使用中,我无法删除它们。后者真正杀死了 Explorer.exe,我必须稍后使用 Start-Process。有没有办法使用 Stop-Process 来获得 TaskKill 行为,或者这是一种罕见的情况,老派的 kludge 也是唯一有效的方法?
【问题讨论】:
-
@christian-müller,感谢您提供的链接。我觉得这不是重复的,从某种意义上说,我不想永久更改机器的配置,我只想让进程停止更长时间。但它表明这是一个使用命令行破解的地方。我可以忍受。
-
你使用的是taskkill /force,stop-process -force怎么样?
-
除非你需要等待,否则没有理由使用 start-process。
标签: powershell