ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 部分Windows批处理脚本整理

部分Windows批处理脚本整理

原创 Linux操作系统 作者:charsi 时间:2014-02-25 11:34:38 0 删除 编辑

在工作中有时候在Windows平台需要使用到批处理脚本进行一些定期的任务,来达到与UNIX平台SHELL脚本的功能,下面整理了几个工作中用到的脚本。

收集Java进程内存的内存使用情况
set nowtime=%date:~0,10% %time%
@echo %nowtime% >>D:\scripts\java_memo_mon.txt
tasklist |findstr java >>D:\scripts\java_memo_mon.txt
ping  123.45.67.89  -n  1  -w  1200000
@echo ------------------------------ >>D:\scripts\java_memo_mon.txt

使用tasklist命令可以查看所有windows进程的内存使用情况及进程号,findstr有类似于UNIX平台上grep的功能
只是windows平台上没有sleep类似的命令,因此只能取巧使用ping  123.45.67.89  -n  1  -w  1200000这个命令.
ping一个无效的IP地址
-w参数意思为等待每次回复的超时时间,单位为毫秒
-n参数指要发送的回显请求数
ping  123.45.67.89  -n  1  -w  1200000 计算下来即等于等待20分钟

******************************

删除历史文件(此示例中为删除380天以前的*.rar文件)
set nowtime=%date:~0,10% %time%

@echo %nowtime% >>D:\backup\scripts\SQL_DATA_backup_del.log
forfiles /p D:\backup\SQL_DATA /s /m "*.rar" /d -380 >>D:\backup\scripts\SQL_DATA_backup_del.log
forfiles /p D:\backup\SQL_DATA /s /m "*.rar" /d -380 /c "cmd /c del @path"
@echo -------------------------------------------------- >>D:\backup\scripts\SQL_DATA_backup_del.log

使用forfiles命令,是Windows中类似UNIX/Linux中的find命令
/p参数指搜索的路径,本例中查找D:\backup\SQL_DATA目录
/s参数指递归,递归到每个子目录
/m参数匹配搜索的条件,默认为全部匹配即"*",示例中为"*.rar"
/d参数指文件的上次修改时间,可以选择具体日期前后(+/-)修改的文件;也可以选择当前时间减"dd"天。示例中意思为在380天前修改的文件
/c参数后面指执行什么样的命令,示例中执行删除命令

******************************

备份SQLServer数据库的脚本,采用了for循环,核心的是使用sqlserver中的osql命令
rem @echo off
set svr=sqldb
set svrrole=bozch
set nowtime=%date:~0,10% %time%
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set today=%year%-%month%-%day%
if "%time:~0,1%" == " " (set nowh=%time:~1,1%) else (set nowh=%time:~0,2%)
set rar="d:\Program Files\WinRAR\winRar.exe"
set rarlist="d:\backup\scripts\rarlst.txt"
set ftplist="d:\backup\scripts\ftplst.txt"
set baklog=d:\backup\scripts\tkblbackup.log
@echo. >> %baklog%
@echo -------------------------------------------------- >> %baklog%
@echo %nowtime% BackupScript is starting....... >> %baklog%

::数据库备份语句,可添加多个数据库
for %%a in (AVASOL AVA_EBS XM) do (
@echo %nowtime% BackupDB %%a is beginning....... >> %baklog%
@osql -s localhost -U sa -P circ0620 -Q "backup database %%a to disk='D:\backup\SQL_DATA\%%a_%svr%_%today%.bak' with init" >> %baklog%
    @echo. >>%baklog%

::Rar files
%rar% a -as -r -ep1 -ibck -df d:\backup\SQL_DATA\%%a_%svr%_%today%.bak.rar d:\backup\SQL_DATA\%%a_%svr%_%today%.bak  >> %baklog%

)
:: cd /d d:\backup\SQL_DATA
:: del *.bak

::echo. > %rarlist%
@echo -------------------------------------------------- >> %baklog%
@echo. >> %baklog%

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23850820/viewspace-1087776/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-05-04

  • 博文量
    96
  • 访问量
    360525