加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:28:57 所属栏目:Windows 来源:网络整理
导读:我正在PowerShell v1中编写一个批处理脚本,它将按计划运行,每分钟说一次.不可避免地,有一段时间工作需要超过1分钟才能完成,现在我们有两个脚本运行实例,然后可能有3个等等…… 我希望通过让脚本本身检查是否有自己的实例已经在运行来避免这种情况,如果是,则
我正在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%'"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读