windows – 确保在任何给定时间只有1个PowerShell脚本实例正在运行

前端之家收集整理的这篇文章主要介绍了windows – 确保在任何给定时间只有1个PowerShell脚本实例正在运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在PowerShell v1中编写一个批处理脚本,它将按计划运行,每分钟说一次.不可避免地,有一段时间工作需要超过1分钟才能完成,现在我们有两个脚本运行实例,然后可能有3个等等……

我希望通过让脚本本身检查是否有自己的实例已经在运行来避免这种情况,如果是,则脚本退出.

我在Linux上用其他语言完成了这个,但从未在Windows上使用PowerShell完成此操作.

例如在PHP中我可以做类似的事情:

exec("ps auxwww|grep mybatchscript.PHP|grep -v grep",$output);
if($output){exit;}

在PowerShell v1中有这样的东西吗?我还没有遇到过这样的事情.

在这些常见模式中,哪一个最常用于经常运行的PowerShell脚本?

>锁定文件
> OS任务计划程序
>具有睡眠间隔的无限循环

如果使用powershell.exe -File开关启动脚本,则可以检测进程命令行属性中存在脚本名称的所有powershell实例:
Get-WmiObject Win32_Process -Filter "Name='powershell.exe' AND CommandLine LIKE '%script.ps1%'"

猜你在找的Windows相关文章