我需要阻止两个PowerShell脚本实例同时运行。 (它将通过两个不同的Windows任务计划程序任务使用不同的参数触发,因此我无法使用Windows任务计划程序的内置机制来防止并发执行。)
我的目的是创建一个锁定文件,如果锁定文件已被锁定,则尝试获取锁定将失败。但是,当脚本未运行时,我宁愿不留下垃圾文件。所以我想在脚本的末尾删除它。但是,作为锁定文件的唯一机制,我可以找到use the .NET FileStream
,我看不出如何在不释放锁的情况下删除文件。
如何使用单个锁创建和删除文件?
如果这是一个XY问题并且有更好的方法,我会向他们开放。我确实找到了scraping the process list的内容,但我相信解决方案存在竞争条件。 (这可能不够重要,但我喜欢确定事情。)欢迎任何其他建议。