Windows应用--任务计划与系统服务
创建任务计划:
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:\del-7.bat /sc weekly /d mon /st 01:00
pause
tn - 指定TaskName标识
ru - 指明运行用户,省略此参数则为当前用户
tr - 指明运行程序(或脚本)的路径
sc - 计划单位(频率)MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY,ONCE, ONSTART, ONLOGON,ONIDLE
在启动时运行(无需登录)
schtasks /create /tn "Del-7_log" /ru system /tr D:\startup.bat /sc ONSTART
删除任务计划
@echo off
schtasks /delete /tn "Del-7_log" /F
pause
每20分钟运行一次:(检查进程是否运行)
schtasks /create /sc minute /mo 20 /tn "MinuteTask" /tr D:\startup.bat
mo - 指定运行计划的频率,根据不同的频率取值范围不同:
MINUTE | 1 ~ 1439 | 任务每 n 分钟运行一次。 |
HOURLY | 1 ~ 23 | 任务每 n 小时运行一次。 |
DAILY | 1 ~ 365 | 任务每 n 天运行一次。 |
WEEKLY | 1 ~ 52 | 任务每 n 周运行一次。 |
MONTHLY | 1 ~ 12 | 任务每 n 月运行一次。 |
MONTHLY | LASTDAY | 任务在月份的最后一天运行。 |
MONTHLY | FIRST、SECOND,...,LAST | 与 /d day 参数共同使用,并在特定的周和天运行任务。例如,在月份的第三个周三。 |
/d 指定周或月的一天。只与 WEEKLY 或 MONTHLY 计划共同使用时有效。
/m month[,month...] 指定一年中的某个月。有效值是 JAN ~ DEC 和 * (每个月)。只对于 MONTHLY 计划有效
查询程序是否运行 如果未启动则启动之
@echo off
@chcp 936
tasklist | find /i "waveviewer.exe"
if %errorlevel% == 0 (
echo [%date:~0,10% %time%] running >> D:\tools\waveview.log
)else (
echo [%date:~0,10% %time%] start >> D:\tools\waveview.log
start D:\tools\waveviewer_v4.1.0.01\waveviewer.exe
)
添加系统服务
sc create MultiLogs binpath=D:\tools\MultiLogs.exe
其他选项:选项和值之间需要1个空格
start= <boot|system|auto|demand|disabled|delayed-auto>
DisplayName= <显示名称>
启动系统服务
sc start MultiLogs
停止系统服务
sc stop MultiLogs
删除系统服务
sc delete MultiLogs
通过显示名称查询服务名称 有空格时需要加引号
sc getKeyName "wave view service"
通过服务名称查询显示名称
sc getDisplayName waveviewerSrv