批处理文件bat

作为一名C#程序猿,在项目中遇到好多问题,比如定时备份文件、数据库。发现使用批处理进行操作挺合适的。以项目中的例子为例,简单记录一下批处理的命令。

需求:备份数据库、文件,删除n天之前的数据,将文件进行压缩,每天定时处理。

1、备份数据库、文件:备份数据库只需要将导出数据库的cmd的命令执行就行,oracle比较简单例如:exp scott/tiger@orcl file=D:\database.dmp;

关于文件备份XCOPY source [destination]  /S 复制目录和子目录,除了空的。/E 复制目录和子目录,包括空的。 与 /S /E 相同。可以用来修改 /T。 /Y 禁止提示以确认改写一个现存目标文件。 示例:Xcopy d:\UpdateFiles e:\123  /s /e /y      2、Xcopy \\192.168.0.168\UpdateFiles e:\123  /s /e /y

2、压缩文件,调用Winrar.exe 程序进行压缩

     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>    <@列表文件...> <解压路径\>

a             添加文件到压缩文件;e             解压压缩文件到当前目录;-ag[格式]      使用当前日期生成压缩文件名;r             修复压缩文件;m<0..5>       设置压缩级别(0-存储...3-默认...5-最大) 

示例:

SET RARLINE="%ProgramFiles%\WinRAR\Winrar.exe"  

%RARLINE% a -agYYYYMMDDHHMM -m5 -r   D:\ImgCopy\ D:\King_Pic\*.* 

3、删除文件 forfiles 查找文件,然后运行dos删除命令

        /p:开始搜索的路径 ; /s:递归到子目录; /D:文件最后修改的日期时间 +/-数字 /c 运行的命令行;DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names  /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时,不要求确认。 /A 根据属性选择要删除的文件。 attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 。

示例:forfiles /p "E:\backup\file" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"

echo:echo命令后,可以直接加上要输出的信息,echo on/off 是否将语句打印到屏幕上。

4、定时任务设置

控制面板--管理工具--任务计划程序--新建任务。。。根据向导完成即可

你可能感兴趣的:(C#应用)