如何删除过期的数据库备份文件呢? .
2014-03-06 22:14
316 查看
通过 Forfiles 删除指定目录下过期的备份文件
/*-- 用法详解
D:/>forfiles /?
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
描述 :
选择一个文件 ( 或一组文件 ) 并在那个文件上
执行一个命令。这有助于批处理作业。
参数列表 :
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的
目录 (.) 。
/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*' 。
/S 指导 forfiles 递归到子目录。像 "DIR /S" 。
/C command 表示为每个文件执行的命令。命令字符串应该
用双引号括起来。
默认命令是 "cmd /c echo @file" 。下列变量
可以用在命令字符串中 :
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE" ;
如果是文件,返回 "FALSE" 。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
要在命令行包括特殊字符,字符请以 0xHH
形式使用十六进制代码 ( 例如, x09 为 tab) 。
内部 CMD.exe 命令前面应以 "cmd /c" 开始。
/D date 选择文件,其上一次修改日期大于或等于 (+) ,
或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日期 ;
或选择文件,其上一次修改日期大于或等于 (+)
当前日期加 "dd" 天,或者小于或等于 (-) 当前
日期减 "dd" 天。有效的 "dd" 天数可以是
0 - 32768 范围内的任何数字。如果没有指定,
"+" 被当作默认符号。
/? 显示帮助消息。
例如 :
FORFILES /?
FORFILES
FORFILES /P C:/WINDOWS /S /M DNS*.*
-- 显示 C:/WINDOWS 目录及子目录下 DNS 开头的所有文件名
FORFILES /S /M *.txt /C "cmd /c type @file | more"
-- 显示当前目录下所有 TXT 文件的内容
FORFILES /P C:/ /S /M *.bat
-- 显示 C 盘目录下及子目录下所有文件后缀名为 bat 的文件名
FORFILES /D -30 /M *.exe
-- 显示当前目录下修改日期小于等于天前的 exe 文件名
/C "cmd /c echo @path 0x09 在 30 前就被更改。 "
-- 显示当前目录下所有文件的完整路径并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
FORFILES /D 2001-01-01
-- 显示当前目录下修改日期大于等于 -01-01 的文件名 ( 含文件夹名 )
/C "cmd /c echo @fname 在 2001 年月日就是新的。 "
-- 显示当前目录下所有文件名并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
FORFILES /D +2009-8-18 /C "cmd /c echo @fname 今天是新的。 "
-- 显示当前目录下修改日期大于等于 -8-18 的文件名并在后面追加 ‘ 今天是新的 ’ 的文字
FORFILES /M *.exe /D +1
-- 显示当前目录下修改日期大于等于明天的 exe 文件名
FORFILES /S /M *.doc /C "cmd /c echo @fname @fsize"
-- 显示当前目录及子目录下所有 doc 文件的文件名和文件大小
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
-- 打开当前目录下 txt 文件,不含子文件。 ( 注意变量 isdir 后面的 FALSE 必须为大写 )
*/
目的:删除目录 i: /sqldataup 中天前的 . bak 文件:
步骤:
1 、定义 FORFILES 批处理脚本如下:
C: /> FORFILES / P i: /sqldataup / M *. bak / C "cmd /C del /Q @path" / d - 5
如果执行成功则返回当前盘符 C: /> 。
-- 如果没有需要删除的文件则返回信息错误 : 用指定的搜索标准没有找到文件。比如:
--C:/>FORFILES /P i:/sqldataup /M *.bak /C "cmd /C del /Q @path" /d -5
-- 错误 : 用指定的搜索标准没有找到文件。
/*-- 用法详解
D:/>forfiles /?
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
描述 :
选择一个文件 ( 或一组文件 ) 并在那个文件上
执行一个命令。这有助于批处理作业。
参数列表 :
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的
目录 (.) 。
/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*' 。
/S 指导 forfiles 递归到子目录。像 "DIR /S" 。
/C command 表示为每个文件执行的命令。命令字符串应该
用双引号括起来。
默认命令是 "cmd /c echo @file" 。下列变量
可以用在命令字符串中 :
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE" ;
如果是文件,返回 "FALSE" 。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
要在命令行包括特殊字符,字符请以 0xHH
形式使用十六进制代码 ( 例如, x09 为 tab) 。
内部 CMD.exe 命令前面应以 "cmd /c" 开始。
/D date 选择文件,其上一次修改日期大于或等于 (+) ,
或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日期 ;
或选择文件,其上一次修改日期大于或等于 (+)
当前日期加 "dd" 天,或者小于或等于 (-) 当前
日期减 "dd" 天。有效的 "dd" 天数可以是
0 - 32768 范围内的任何数字。如果没有指定,
"+" 被当作默认符号。
/? 显示帮助消息。
例如 :
FORFILES /?
FORFILES
FORFILES /P C:/WINDOWS /S /M DNS*.*
-- 显示 C:/WINDOWS 目录及子目录下 DNS 开头的所有文件名
FORFILES /S /M *.txt /C "cmd /c type @file | more"
-- 显示当前目录下所有 TXT 文件的内容
FORFILES /P C:/ /S /M *.bat
-- 显示 C 盘目录下及子目录下所有文件后缀名为 bat 的文件名
FORFILES /D -30 /M *.exe
-- 显示当前目录下修改日期小于等于天前的 exe 文件名
/C "cmd /c echo @path 0x09 在 30 前就被更改。 "
-- 显示当前目录下所有文件的完整路径并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
FORFILES /D 2001-01-01
-- 显示当前目录下修改日期大于等于 -01-01 的文件名 ( 含文件夹名 )
/C "cmd /c echo @fname 在 2001 年月日就是新的。 "
-- 显示当前目录下所有文件名并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
FORFILES /D +2009-8-18 /C "cmd /c echo @fname 今天是新的。 "
-- 显示当前目录下修改日期大于等于 -8-18 的文件名并在后面追加 ‘ 今天是新的 ’ 的文字
FORFILES /M *.exe /D +1
-- 显示当前目录下修改日期大于等于明天的 exe 文件名
FORFILES /S /M *.doc /C "cmd /c echo @fname @fsize"
-- 显示当前目录及子目录下所有 doc 文件的文件名和文件大小
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
-- 打开当前目录下 txt 文件,不含子文件。 ( 注意变量 isdir 后面的 FALSE 必须为大写 )
*/
目的:删除目录 i: /sqldataup 中天前的 . bak 文件:
步骤:
1 、定义 FORFILES 批处理脚本如下:
C: /> FORFILES / P i: /sqldataup / M *. bak / C "cmd /C del /Q @path" / d - 5
如果执行成功则返回当前盘符 C: /> 。
-- 如果没有需要删除的文件则返回信息错误 : 用指定的搜索标准没有找到文件。比如:
--C:/>FORFILES /P i:/sqldataup /M *.bak /C "cmd /C del /Q @path" /d -5
-- 错误 : 用指定的搜索标准没有找到文件。
相关文章推荐
- 如何删除SQL2005过期的数据库备份文件呢?
- 通过SQL存储过程删除过期的数据库Bak备份文件
- 通过SQL存储过程删除过期的数据库Bak备份文件
- 通过SQL存储过程删除过期的数据库Bak备份文件或其它文件
- 通过CLR存储过程删除过期的数据库Bak备份文件
- 通过SQL存储过程删除过期的数据库Bak备份文件或其它文件
- 用语句来创建多个数据库的备份、删除过期文件作业
- WINDOWS脚本(备份数据库+FTP上传+自动删除7天前文件)
- SQL Server备份和删除过期备份文件的脚本
- crontab定时任务打包备份文件并删除过期文件
- 【转载】SQLServer自动备份和自动删除过期文件
- 如何将阿里云的数据库备份RDS文件在本地恢复
- Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库?
- SQL删除数据库备份文件
- Xcode 如何删除过期的Provisioning Profile文件
- backup4:数据库自动备份,自动删除备份文件
- 数据库自动备份、自动删除;创建任务本地保存文件
- SQL2000数据库文件超过100G,如何备份?
- (windows)python脚本:自动备份并压缩文件,同时删除过期文件
- 如何对Oracle数据库文件进行恢复与备份