批处理指令——at指令,轻松帮你完成计划

其实Windows系统中有很多指令可以帮我们解决很多问题,慢慢尝试写一些脚本,你发现原来很多事情根本没必要去下载第三方软件,更不会因为太多的任务二让你的电脑变慢。

大家都知道,在Windows系统的运行里输入cmd,出现一个类是DOS的界面,这里有很多指令可以帮你完成很多任务,慢慢你就会爱上她的,现在我们来了解她的 at指令:

     at

列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序,以及设置在制定时间和日期在计算机上运行计划命令或程序(必须确保你的系统Task Scheduler服务是开启的),以下都是在CMD下执行的:

c:\> at                :列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序

c:\> at /?           :获取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[,…]    在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星  

      期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省

      略了date,将假定为该月的当前日期。

       /next:date[,…]     在重复出现下一天(例如,下个星期四)时,运行指定命令将 date 指定为星期的一天或多天 (M,

      T,   W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定

      为该月的当前日期。
        “command”            准备运行的 Windows NT 命令或批处理 程序。

现在你可以尝试用at指令完成下边的任务:

1.  定时关机

at 00:00 shutdown -s -f -t 0 >nul 2>nul      

rem  在凌晨自动关机

rem 0 >nul 2>nul   表示无论命令执行成功与否都不显示消息

2. 在每个周一的上午8点执行系统垃圾的清理

at 8:00 /every:M cmd /c  d:\clean.bat   或at 8:00 /every:M clean.exe

rem    cmd /c dir 是执行完dir命令后关闭命令窗口。

rem    d:\clean.bat是你要执行垃圾清理的批处理的路径及文件名,以下是其脚本代码,你可以复制到记事本,保存为clean.bat

—————————————————————————————————–(此线不要复制)

@echo off
color f0
echo.
echo    正在安全地自动清除垃圾文件……
del /f /q %systemdrive%\*.tmp>nul 2>nul
del /f /q %systemdrive%\*._mp>nul 2>nul
del /f /q %systemdrive%\*.log>nul 2>nul
del /f /q %systemdrive%\*.gid>nul 2>nul
del /f /q %systemdrive%\*.chk>nul 2>nul
del /f /q %systemdrive%\*.old>nul 2>nul
del /f /q %windir%\*.bak>nul 2>nul
del /f /q %windir%\*.tmp>nul 2>nul
del /f /q %windir%\prefetch\*.*>nul 2>nul
del /f /s /q %systemdrive%\recycled\*.*
del /f /q “%ALLUSERSPROFILE%\Documents\DrWatson\*.*”>nul 2>nul
del /f /q “%USERPROFILE%\Cookies\*.txt”>nul 2>nul
del /f /q /s “%TEMP%\*.*”>nul 2>nul
del /f /q /s “%Systemroot%\Prefetch\*.*”>nul 2>nul
del /f /q “%USERPROFILE%\Recent\*.*”>nul 2>nul
del /f /q “%USERPROFILE%\Application Data\Microsoft\Office\Recent\*.lnk”>nul 2>nul
del /f /q /s “%USERPROFILE%\Local Settings\Temp\*.*”>nul 2>nul
rd /s /q %windir%\temp & md %windir%\temp>nul 2>nul
if not exist %SystemRoot%\Minidump\NUL del /f /q /s %SystemRoot%\Minidump\*.*>nul 2>nul
del /f /s /q “%userprofile%\Local Settings\Temporary Internet Files\*.*”>nul 2>nul

3.计划从周一到周六每天上午2:00执行数据库备份

at 2:00 /every:M,T,W,Th,F,S,Su cmd /c d:\Auto backup\autobackup.bat

(1)批处理autobackup.bat的脚本如下:

Isql格式:isql –Uusename –Ppassword –Sdatabase  < sql脚本文件
代码如下:
isql -Usa –Pbab1254 -SBABDB2 < d:\Auto backup\autobackup.spt

(2)数据库脚本文件autobackup.spt内容如下:

use BABDB2
go
exec autobackup
go
/*
use BABDB2  =打开数据库
exec autobackup=运行存储过程autobackup
*/

(3)存储过程代码autobackup
CREATE PROCEDURE dbo.autobackup
AS
DECLARE @filename char(255)
DECLARE @tempchar1 char(255)
DECLARE @tempchar2 char(1)
DECLARE @tempchar3 char(14)
BEGIN
SELECT @tempchar1=value
    FROM emg_systemtable
    WHERE parameter=”backup_path”
   
SELECT @tempchar2=value
    FROM emg_systemtable
    WHERE parameter=”district”
   
SELECT @tempchar3=
    datename(year,getdate())+”_”
    +ltrim(str(datepart(month,getdate()),2,0))+”_”
    +ltrim(str(datepart(day,getdate()),2,0))+”.dat”
   
SELECT @filename=rtrim(@tempchar1)+rtrim(@tempchar2)+@tempchar3
DUMP DATABASE BABDB2 TO @filename
END

(4)这样设置后,winnt4.0/2000/2003服务器就会每天半夜2:00自动备份数据库sybase到指定的目录中,按规则生成备份数据库文件。

此方式可以自动备份mssql,mysql,Sybase,oracle…sql文件和存储过程有点差别而己!根据自己的实际情况做一下更改即可。
4.取消计划

列出当所有计划:

at

取消所有计划:

at /del /yes

取消单个计划 如ID为2:

at 2 /del
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/long_feihong/archive/2009/10/15/4677278.aspx

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注