返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >批处理bat系统管理之任务计划篇
  • 770
分享到

批处理bat系统管理之任务计划篇

bat任务计划批处理任务计划 2022-11-13 18:11:21 770人浏览 薄情痞子
摘要

目录1. at 命令1.1 at 命令基本语法1.2 at 创建任务计划1.3 查看 at 创建了哪些任务计划2. schtasks 命令2.1 schtasks 命令基本语法2.2

本文主要介绍使用 at 和 schtasks 两个命令实现常见任务计划的增删查改等操作。其中 at 命令功能比较单一,可以设置的任务计划的属性较少,多用于 XP 等老系统;相比之下 schtasks 的功能较为丰富,Win7 / Win10 等系统建议使用 schtasks 命令管理任务计划。

对于 windows 系统管理员来说,经常遇到的操作可能包括:

进程
服务
注册表
任务计划
防火墙
网络
用户和组
共享
FTP

一方面,初学批处理脚本的朋友们往往习惯于通过Goto等死循环的方式实现每隔XX时间执行一次某命令,这样的方式只适合练习一下语法或者在自己电脑上做个小试验。如果要放在公司的服务器上,是不太合适的,因为这种死循环的方式太浪费系统资源。推荐的方式是把脚本放在任务计划里面定期执行。

另一方面,某些恶意脚本也喜欢创建任务计划定时执行恶意操作,某些讨厌的软件也经常通过任务计划定期更新版本或弹窗等。熟练掌握相关命令行的操作,也有助于解决此类问题。

1. at 命令

1.1 at 命令基本语法

at [\\computername] [ [id] [/delete] | /delete [/yes]]
at [\\computername] time [/interactive] [ /every:date[,...] | /next:date[,...]] "command"

常用参数列表:

\\computername指定远程计算机。如果省略这个参数,会计划在本地计算机上运行命令。
id指定给已计划命令的识别号。
/delete删除某个已计划的命令。如果省略 id,计算机上所有已计划的命令都会被删除。
/yes不需要进一步确认时,跟删除所有作业的命令一起使用。
time指定运行命令的时间。(24小时计时法00:00到23:59)
/interactive允许作业在运行时,与当时登录的用户桌面进行交互。
/every:date[,...]指定在每周(m,t,w,th,f,s,su分别代表周一到周日)或每月的特定日期(1到31)运行命令。如果省略日期,则默认为在每月的本日运行。
/next:date[,...]指定在下一个指定日期(如,下周四)运行命令。如果省略日期,则默认为在每月的本日运行。
"command"准备运行的命令或批处理程序。

1.2 at 创建任务计划

# 今天下午2:30自动关机

at 14:30 shutdown /s /f /t 0

# 每天晚上11点自动关机

at 23:00 /every:m,t,w,th,f,s,su shutdown /s /f /t 0

# 每周一到周五早上9点执行脚本 C:\Test Backup.bat

at 09:00 /every:m,t,w,th,f cmd /c "C:\Test Backup.bat"

例如 C:\Test Backup.bat 脚本内容是:

@echo off
if not exist "E:\Log\" (
    md "E:\Log"
)
copy /y "C:\Windows\WindowsUpdate.log" "E:\Log\"

1.3 查看 at 创建了哪些任务计划

直接执行 at 命令不带任何参数即可。

C:\>at
状态 ID     日期                    时间          命令行
-------------------------------------------------------------------------------
        1   今天                    14:30         shutdown /s /f /t 0
        2   每月执行日期:...        23:00         shutdown /s /f /t 0
        3   每月执行日期:...        9:00          cmd /c "C:\Test Backup.bat"

1.4 删除ID为2的 at 任务计划

at 2 /delete /yes

1.5 删除所有的 at 任务计划

at /delete /yes

1.6 获得 SYSTEM 权限的命令行窗口

XP 系统有个小技巧,可以用 at 命令获取一个系统权限的命令行窗口,通常可以使用这个方法结束某些恶意进程、删除某些顽固文件等。假如现在的时间为16:46,运行下面的命令,会在一分钟后打开一个 SYSTEM 权限的命令行窗口。

at 16:47 /interactive %ComSpec%

2. schtasks 命令

2.1 schtasks 命令基本语法

schtasks /create创建新任务计划
schtasks /delete删除任务计划
schtasks /query显示所有任务计划
schtasks /change更改任务计划属性
schtasks /run按需运行任务计划
schtasks /end中止当前正在运行的任务计划
schtasks /showsid显示与计划的任务名称相应的安全标识符

2.2 schtasks 创建任务计划

schtasks /create 命令的主要参数:

/tn指定任务的名称。
/tr指定任务运行的程序或命令。
/sc指定计划类型。有效值为 MINUTE、HOURLY、DaiLY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
/mo指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1。
/d指定周或月的一天。只与 WEEKLY 或 MONTHLY 计划共同使用时有效。
/m指定一年中的一个月。有效值是 JAN ~ DEC 和 * (每个月)。/m 参数只对于 MONTHLY 计划有效。在使用 LASTDAY 修饰符时,这个参数是必需的。否则,它是可选的,默认值是 * (每个月)。
/i指定任务启动之前计算机空闲多少分钟。键入一个 1 ~ 999 之间的整数。这个参数只对于 ONIDLE 计划有效,而且是必需的。 
/st以 HH:MM:SS 24 小时格式指定时间。默认值是命令完成时的当前本地时间。/st 参数只对于 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 计划有效。它只对于 ONCE 计划是必需的。
/sd以 YYYY/MM/DD 格式指定任务启动的日期。默认值是当前日期。/sd 参数对于所有的计划有效,但只对于 ONCE 计划是必需的。
/ed指定任务计划运行的最后日期。此参数是可选的。它对于 ONCE、ONSTART、ONLOGON 或 ONIDLE 计划无效。默认情况下,计划没有结束日期。
/s指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。
/u使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。
/p指定在 /u 参数中指定的用户帐户的密码。如果使用 /u 参数,则需要该参数。
/ru使用指定用户帐户的权限运行任务。默认情况下,使用用户登录到运行 SchTasks 的计算机上的权限运行任务。
/p指定用户帐户的密码,该用户帐户在 /u 参数中指定。如果在指定用户帐户的时候忽略了这个参数,SchTasks.exe 会提示您输入密码而且不显示键入的文本。使用 NT Authority\System 帐户权限运行的任务不需要密码,SchTasks.exe 也不会提示索要密码。
/xml从文件的指定任务 XML 中创建任务。
/f如果指定的任务已经存在,则强制创建任务并抑制警告。

# 每天晚上8点30分关机

schtasks /create /tn "BatHome Job 2.2.01" /tr "shutdown /s /f /t 0" /sc daily /st 20:30:00 /ru System

注:服务器上的普通用户或管理员用户通常强制要求定期更改密码,更改密码之后,该用户创建的任务计划将会无法执行,需要手工更改存储在任务中的密码。创建任务计划的时候指定使用 System 用户将不存在定期更改密码的问题。

# 每10分钟执行一次某个脚本

schtasks /create /tn "BatHome Job 2.2.02" /tr """"C:\Test\2.2.02 Backup.bat"""" /sc minute /mo 10 /ru System

注:待执行的程序路径中包含空格等特殊字符的情况下,需要增加额外的双引号。

# 每小时过三分的时候运行一次

schtasks /create /tn "BatHome Job 2.2.03" /tr "C:\Test\2.2.03.bat" /sc hourly /st 00:03:00 /ru System

注:因为忽略了 /mo 参数,命令使用了小时计划的默认值,即每1小时执行一次。

# 从某天开始每三小时运行一次

schtasks /create /tn "BatHome Job 2.2.04" /tr "C:\Test\2.2.04.bat" /sc hourly /mo 3 /sd 2022/09/29 /ru System

注:使用 /mo 参数来指定间隔时间,使用 /sd 参数来指定起始日期。由于命令没有指定起始时间,当前时间被用作起始时间。

# 每天运行一次直到某天为止

schtasks /create /tn "BatHome Job 2.2.05" /tr "C:\Test\2.2.05.bat" /sc daily /st 09:00:00 /ed 2022/12/31 /ru System

注:忽略了 /mo 参数,所以使用默认间隔 1 来每天上午9点运行命令。使用 /ed 参数指定到2022年12月31日结束。

# 从某天开始每隔一天运行一次

schtasks /create /tn "BatHome Job 2.2.06" /tr "C:\Test\2.2.06.bat" /sc daily /mo 2 /st 15:00:00 /sd 2022/09/29 /ru System

注:使用 /mo 参数来指定 2 天的间隔。

# 每三周运行一次
schtasks /create /tn "BatHome Job 2.2.07" /tr "C:\Test\2.2.07.bat" /sc weekly /mo 3 /ru System
# 每月的第一天运行
schtasks /create /tn "BatHome Job 2.2.08" /tr "C:\Test\2.2.08.bat" /sc monthly /ru System
# 每月的最后一天运行
schtasks /create /tn "BatHome Job 2.2.09" /tr "C:\Test\2.2.09.bat" /sc monthly /mo lastday /m * /ru System
# 每月的第三个周五运行
schtasks /create /tn "BatHome Job 2.2.10" /tr "C:\Test\2.2.10.bat" /sc monthly /mo third /d fri /ru System
# 第四季度每月的第三天运行
schtasks /create /tn "BatHome Job 2.2.11" /tr "C:\Test\2.2.11.bat" /sc monthly /d 3 /m oct,nov,dec /ru System
# 指定日期时间运行一次
schtasks /create /tn "BatHome Job 2.2.12" /tr "C:\Test\2.2.12.bat" /sc once /st 22:00:00 /sd 2022/09/29 /ru System
# 每次系统启动的时候运行
schtasks /create /tn "BatHome Job 2.2.13" /tr "C:\Test\2.2.13.bat" /sc onstart /ru System
# 每当用户登录的时候运行
schtasks /create /tn "BatHome Job 2.2.14" /tr "C:\Test\2.2.14.bat" /sc onlogon /ru System
# 空闲指定时长的时候运行
schtasks /create /tn "BatHome Job 2.2.15" /tr "C:\Test\2.2.15.bat" /sc onidle /i 15 /ru System

注:使用 /i 参数指定系统空闲15分钟后运行。

2.3 schtasks 修改任务计划

schtasks /change /tn TaskName [/s computer [/u [domain\]user /p passWord]] [/tr TaskRun] [/ru [Domain\]User | "System"] [/rp Password]

2.4 schtasks 立即运行任务计划

schtasks /run /tn TaskName [/s computer [/u [domain\]user /p password]]

注:忽略原有计划,立即运行任务计划。不会更改任务计划好的下次运行时间。

2.5 schtasks 终止由任务启动的程序

schtasks /end /tn TaskName [/s computer [/u [domain\]user /p password]]

2.6 schtasks 查看任务计划

schtasks [/query] [/fo {TABLE | LIST | CSV}] [/nh] [/v] [/s computer [/u [domain\]user /p password]]

注:Win7 命令行窗口的中文状态下 schtasks /query 可能会出错,可以先用chcp命令切换到英文。

chcp 437
schtasks /query

2.7 schtasks 删除任务计划

schtasks /delete /tn {TaskName | *} [/f] [/s computer [/u [domain\]user /p password]]
# 删除指定名称的任务计划
schtasks /delete /tn "GoogleUpdateTaskMachineUA" /f
# 删除所有的任务计划
schtasks /delete /tn * /f

注:慎重执行!系统有很多默认的任务计划,请做好充分的备份。

2.8 没有参数对应的属性如何修改

例如:没有哪个参数可以设置“如果任务运行时间超过以下时间,停止任务”

1) 创建任务计划:

schtasks /create /tn "BatHome Job 2.8.01" /tr "C:\Test\2.8.01.bat" /sc daily /mo 1 /st 15:14 /ru System

2) 打开任务计划程序图形界面,手工设置好超时时间,然后导出xml

# 默认值是3天:
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
# 修改成1小时之后:
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>

3) 用修改后的xml文件去创建任务计划

schtasks /create /ru System /tn "BatHome Job 2.8.02" /xml "C:\Test\2.8.02.xml"

使用bat文件创建系统的任务计划程序

最近由于需要在电脑上添加任务计划用来调用自己的脚本,由于使用一段是时间后需要重装系统,有需要重新进行设置,感觉很麻烦,没有双击一下文件就能创建好的方便。
下面是脚本的内容,创建完成后,在电脑启动后3分钟时执行,目标路径下的bat脚本。
可以根据自己的需求修改

@echo off
set curDir=C:\Users\Administrator\Desktop\test\

schtasks /create /tn record  /ru system /tr "'%curDir%sclect.bat'" /sc onStart  /delay 0003:00 /rl highest /F /np

@echo on

简单说一下我了解的几个参数吧,具体的太复杂了没专门去研究。
/ru system :加上这个的话创建的任务计划就是system用户创建的,删除这个参数的话运行就是当前用户创建的任务
/tr "'%curDir%sclect.bat'":是通配符的脚本路径,由于有的直接输入时会有问题,特殊字符等等导致无法执行,因此经路径拆分处理,这里拼接一下可以很方便的解决。
/delay 0003:00:这个应该就是启动后延时3分钟启动,没有专门研究,可以根据自己的需求修改(0010:00,启动后延迟10分钟 ;0000:00启动后不延迟)
其他的我就不太清楚了,解读到此结束,希望对大家有帮助。

到此这篇关于批处理bat系统管理之任务计划篇的文章就介绍到这了,更多相关bat任务计划内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 批处理bat系统管理之任务计划篇

本文链接: https://lsjlt.com/news/170211.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 批处理bat系统管理之任务计划篇
    目录1. at 命令1.1 at 命令基本语法1.2 at 创建任务计划1.3 查看 at 创建了哪些任务计划2. schtasks 命令2.1 schtasks 命令基本语法2.2...
    99+
    2022-11-13
    bat任务计划 批处理任务计划
  • Windows Vista系统中的任务计划管理介绍
      在Windows vista中,微软对自Windows 98以来一直未做大的调整的任务计划(Task Scheduler)工具做了较大调整,使用户在Windows Vista中的任务调度更加直观、简单且高效。   当...
    99+
    2023-06-01
    Vista 任务计划 Windows 管理 系统 任务 计划
  • Oracle 任务管理之 ----program(程序)---scheduler(计划)--Job(任务)
    对于Oracle的任务管理,主要理解清楚三个关键内容,就可以完全掌握任务,详细介绍如下: 1、概念分析 PROGRAM  --程...
    99+
    2024-04-02
  • Windows Server 2008中使用计划任务定时执行BAT批处理文件图文教程
    打开计划任务快捷方式(在 “管理工具”内): C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\...
    99+
    2023-06-07
    Windows Server 2008 计划任务 定时执行BAT批处理文件 BAT 处理 文件 任务 图文
  • windows计划任务管理器怎么打开
    要打开Windows计划任务管理器,可以按照以下步骤操作:1. 使用快捷键组合 Ctrl + Shift + Esc 打开任务管理器...
    99+
    2023-09-08
    windows
  • 钉钉任务管理系统
    钉钉任务管理系统的优点 高效便捷的任务管理方式:任务管理系统采用消息提醒和审批流程,能够帮助员工快速分配任务,提高任务分配的准确性和效率。同时,任务管理系统能够自动化任务的分配和提醒,让员工不必再手动管理任务。 良好的协同沟通体验:任务...
    99+
    2023-10-28
    管理系统
  • 如何实现CentOS进程和计划任务管理
    本篇内容介绍了“如何实现CentOS进程和计划任务管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!操作步骤:“如何实现CentOS进程和计...
    99+
    2023-06-10
  • 如何通过批处理bat设置系统环境变量
    这篇文章主要讲解了“如何通过批处理bat设置系统环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过批处理bat设置系统环境变量”吧!bat代码set JAVA_HOME...
    99+
    2023-06-08
  • WinXP打开任务管理器提示任务管理器已被系统管理员停用
      使用WinXP的小伙伴经常都需要用到任务管理器,因为WinXP的不稳定性很容易造成程序未响应,但当我们去网吧或者在其它电脑上上机时,打开任务管理器却跳出提示“任务管理器已被系统管理员停用”,遇...
    99+
    2023-06-10
    WinXP 任务管理器 管理员 任务 管理器 提示 系统管理员
  • 怎么用bat批处理恢复c盘系统默认权限
    这篇文章主要介绍“怎么用bat批处理恢复c盘系统默认权限”,在日常操作中,相信很多人在怎么用bat批处理恢复c盘系统默认权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用bat批处理恢复c盘系统默认权限...
    99+
    2023-06-08
  • 如何用Dos批处理编写一键清理系统垃圾的bat代码
    这篇文章将为大家详细讲解有关如何用Dos批处理编写一键清理系统垃圾的bat代码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。del 命令的参数/F 强制删除只读文件。/S 从所有子目录删除指...
    99+
    2023-06-08
  • BAT批处理提取系统时间的实现代码(bug修复)
    一般情况下用下面的代码即可,但批处理的默认0开头的数字以为是8进制,导致获取的时间不准确 for /f "tokens=1,2 delims=:" %%i in ('time/t...
    99+
    2024-04-02
  • bat命令批处理如何判断32位还是64位系统
    这篇文章主要为大家展示了“bat命令批处理如何判断32位还是64位系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“bat命令批处理如何判断32位还是64位系统”这篇文章吧。第一种代码:通过 %...
    99+
    2023-06-08
  • 怎么用批处理bat标准化获取当前系统日期
    这篇文章主要介绍“怎么用批处理bat标准化获取当前系统日期”,在日常操作中,相信很多人在怎么用批处理bat标准化获取当前系统日期问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用批处理bat标准化获取当前系...
    99+
    2023-06-08
  • SQL执行计划管理可以分为哪些基本任务
    本篇内容介绍了“SQL执行计划管理可以分为哪些基本任务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用d...
    99+
    2024-04-02
  • 应用生产计划管理系统的方法与技巧
        随着科技和时代发展,生产制造企业同质化竞争日趋严重,个性化需求越来越多。由于传统信息采集模式效率低、不及时、错误多,用户需求无法有效传递到生产、采购等部门,导致生产计划制定时,很难知道生产什么、生产多少...
    99+
    2023-06-05
  • 用bat实现定时执行任务的批处理文件代码分享
    这篇文章主要讲解了“用bat实现定时执行任务的批处理文件代码分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用bat实现定时执行任务的批处理文件代码分享”吧!@echo off&...
    99+
    2023-06-09
  • 个人财务管理系统设计
    简介 个人财务管理系统是一种用于管理个人财务的软件工具。它可以帮助用户跟踪收入、支出、投资和债务等方面的信息,以便更好地了解自己的财务状况并做出明智的决策。本文将介绍个人财务管理系统的设计原则和功能特点。功能特点1. 收入和支出跟踪个人财务...
    99+
    2024-01-30
    财务管理系统
  • 如何使用Linux系统任务管理器
    这篇文章给大家介绍如何使用Linux系统任务管理器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在使用 GNOME 桌面环境的 Linux 上的任务管理器等价物使用 GNOME 时,按下 super 键(Windows...
    99+
    2023-06-28
  • Windows7系统开启、取消磁盘碎片整理计划任务设置方法
    Win7默认是开启磁盘碎片整理的,如何你装的是Ghost版的Win7,这一功能很有可能被取消设置了。 笔记本开机闲置的时候,往往会自动进行磁盘碎片整理。太频繁了也不好,尤其是这高温的夏天,很容易造成硬盘温度过高。 ...
    99+
    2023-06-10
    Windows7系统 开启磁盘碎片整理 取消磁盘碎片整理计划任务 整理 计划 磁盘碎片 任务 设置
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作