如何用PowerShell While循环实现每日指定时间启停进程,无需任务计划程序
PowerShell 每日固定时间启停进程实现
以下是修改后的可直接运行的脚本,默认每日17:00(下午5点)执行abc进程的启停操作:
while($true){ # 设定每日目标执行时间 $runTime = Get-Date -Hour 17 -Minute 0 -Second 0 # 若当前时间已超过今日目标时间,自动顺延到次日 if ($runTime -lt [DateTime]::Now) { $runTime = $runTime.AddDays(1) } # 计算需要休眠的时长 Start-Sleep -Seconds ($runTime - [DateTime]::Now).TotalSeconds # 业务逻辑:启动进程、等待1小时后关闭 Start-Process "abc" Start-Sleep -Seconds 3600 Get-Process -Name "abc" -ErrorAction SilentlyContinue | Stop-Process -Force }
可调整参数说明
- 调整执行时间:修改
Get-Date的Hour参数即可,使用24小时制,例如下午2点就改为-Hour 14 - 调整进程运行时长:修改
Start-Sleep -Seconds 3600的数值,单位为秒,例如要运行30分钟就改为1800
注意事项
- 脚本运行期间不能关闭PowerShell窗口,如需后台隐藏运行,可创建如下vbs脚本调用ps1文件:
双击运行vbs文件即可实现后台无窗口执行Set WshShell = CreateObject("WScript.Shell") WshShell.Run "powershell.exe -ExecutionPolicy Bypass -File ""C:\你的脚本完整路径.ps1""", 0 - 如需终止脚本运行,在任务管理器中找到对应PowerShell进程结束即可
内容的提问来源于stack exchange,提问作者windowws
相关产品推荐
相关产品推荐

