我正在 PowerShell v1 中编写一个批处理脚本,它将被安排运行,假设每分钟运行一次。不可避免地,工作需要超过 1 分钟才能完成,现在我们有两个脚本实例正在运行,然后可能有 3 个,等等......
我想通过让脚本本身检查是否有自己的实例已经在运行来避免这种情况,如果是,则脚本退出。
我已经在 Linux 上用其他语言完成了此操作,但从未在 Windows 上使用 PowerShell 完成此操作。
例如,在 PHP 中,我可以执行以下操作:
exec("ps auxwww|grep mybatchscript.php|grep -v grep", $output);
if($output){exit;}
PowerShell v1 中有这样的东西吗?我还没有遇到过这样的事情。
在这些常见模式中,哪一种模式最适合频繁运行 PowerShell 脚本?
- 锁定文件
- 操作系统任务计划程序
- 带有睡眠间隔的无限循环