台山市文章资讯

bat批处理文件每隔一段时间运行一次程序的代码

2026-04-04 20:02:02 浏览次数:2
详细信息

方法1:使用ping命令实现简单延迟

@echo off
:loop
start "" "C:\path\to\your\program.exe"
:: 等待60秒(60000毫秒)
ping 127.0.0.1 -n 2 > nul
:: 或者使用 timeout(需要Windows Vista及以上)
:: timeout /t 60 /nobreak > nul
goto loop

方法2:使用choice命令(更精确的延迟)

@echo off
:loop
start "" "C:\path\to\your\program.exe"
:: 等待用户按任意键继续(可设置时间)
choice /c X /t 60 /d X > nul
goto loop

方法3:使用VBScript实现精确延迟(推荐)

创建一个批处理文件 run_periodically.bat

@echo off
set INTERVAL=60  :: 间隔时间(秒)
set PROGRAM="C:\path\to\your\program.exe"

:loop
echo [%date% %time%] 启动程序...
start "" %PROGRAM%

echo 等待 %INTERVAL% 秒...
:: 调用VBScript实现精确等待
echo WScript.Sleep %INTERVAL%000 > sleep.vbs
cscript //nologo sleep.vbs
del sleep.vbs

goto loop

方法4:使用SCHTASKS创建计划任务(更可靠)

@echo off
:: 创建计划任务(每5分钟运行一次)
schtasks /create /tn "MyPeriodicTask" /tr "C:\path\to\program.exe" /sc minute /mo 5 /ru SYSTEM

:: 要删除任务,使用:
:: schtasks /delete /tn "MyPeriodicTask" /f

方法5:完整的带日志记录的批处理

@echo off
title 定时运行程序
setlocal enabledelayedexpansion

:: 配置参数
set PROGRAM="C:\path\to\your\program.exe"
set INTERVAL=300  :: 间隔时间(秒)
set LOGFILE="C:\path\to\log.txt"

echo 开始定时运行程序 [%date% %time%]
echo 程序路径: %PROGRAM%
echo 间隔时间: %INTERVAL% 秒
echo.

:loop
echo [%date% %time%] 启动程序... >> %LOGFILE%
echo [%date% %time%] 启动程序...

:: 运行程序(后台运行)
start "" %PROGRAM%

:: 显示倒计时
for /l %%i in (%INTERVAL%, -1, 1) do (
    set /a minutes=%%i/60
    set /a seconds=%%i%%60
    cls
    echo 程序已启动,下次运行将在 !minutes!分!seconds!秒后...
    timeout /t 1 /nobreak > nul
)

goto loop

方法6:使用PowerShell的Sleep命令

@echo off
:loop
start "" "C:\path\to\your\program.exe"

:: 使用PowerShell等待(支持小数秒)
powershell -command "Start-Sleep -Seconds 60"

goto loop

实际应用示例:每30分钟检查一次

@echo off
:: 每30分钟运行一次程序的批处理
set INTERVAL=1800  :: 1800秒 = 30分钟
set PROGRAM="notepad.exe"

echo 定时运行程序开始于: %date% %time%
echo 按Ctrl+C停止

:mainloop
echo [%date% %time%] 执行程序...
start "" %PROGRAM%

:: 计算下次运行时间
set /a minutes=INTERVAL/60
echo 下次运行将在 %minutes% 分钟后...

:: 使用choice等待(更兼容)
choice /c X /t %INTERVAL% /d X > nul

goto mainloop

注意事项:

权限问题:确保有足够的权限运行目标程序 程序路径:如果路径包含空格,一定要用引号括起来 停止方式:按 Ctrl+C 可以停止批处理 资源占用:长时间运行的批处理可能会占用少量系统资源 日志记录:建议添加日志功能以便调试

推荐方案:

选择哪种方法取决于你的具体需求和系统环境。

相关推荐