当前位置:   article > 正文

Bat 脚本实现监测程序进而定时关机

Bat 脚本实现监测程序进而定时关机

linux虚拟机里跑任务,可以在sh脚本里把命令一个个按顺序先写好后,把关机命令power off放在最后。这样可以当任务结束后虚拟机自动关机。但这样无法设置虚拟机外部的windows主机关机。

这里写了一个bat脚本,可以对运行的虚拟机程序进行定时监测,如果虚拟机程序结束了,就进行关机命令。

脚本autoshutdown.bat内容如下:

  1. @echo off
  2. set _task = vmware-vmx.exe
  3. :checkService
  4. choice /t 30 /d y /n >nul
  5. tasklist|find /i "vmware-vmx.exe"
  6. if %errorlevel%==0 (
  7. echo. program % _task% is running.
  8. call:checkMessage
  9. ) else (
  10. echo. program % _task% is over.
  11. call:poweroffService
  12. )
  13. :checkMessage
  14. echo %time% 程序运行正常,20秒后继续检查.. >> C:\Users\ff\Desktop\autoshutdownlog.txt
  15. call:checkService
  16. :poweroffService
  17. echo %time%
  18. echo ********PC will be power off after 1 min********
  19. echo The last time of PC shutdown is %time% >> C:\Users\ff\Desktop\autoshutdownlog.txt
  20. shutdown /s /f /t 60
  21. cls
  22. exit

这里用set命令将监测的程序vmware-vmx.exe定义为变量_task

建立了3个自定义函数:checkService,:checkMessage,:poweroffService

:checkService函数里,用choice命令设置了等待时间30秒,30秒后运行后面的tasklist命令在运行的任务中查找任务vmware-vmx.exe。如果任务存在,变量errorlevel返回0,如果不存在errorlevel变量返回1。基于此建立if和else语句。

:checkMessage将内容记录到日志文件中,用call命令返回到函数:checkService里继续监测。

最后如果任务vmware-vmx.exe结束,用call命令调用:poweroffService函数运行shutdown命令进行主机关机。

参考:

Bat 脚本实现监控进程功能-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程谜题解决者/article/detail/61961
推荐阅读
相关标签
  

闽ICP备14008679号