• 如何删除过期的数据库备份文件呢? .


    通过 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

    -- 错误 : 用指定的搜索标准没有找到文件。

  • 相关阅读:
    [敏捷软工团队博客]Beta阶段项目展示
    [敏捷软工团队博客]Beta阶段使用指南
    [敏捷软工团队博客]Beta阶段测试报告
    [敏捷软工团队博客]Beta阶段发布声明
    [Beta]the Agiles Scrum Meeting 12
    [Beta]the Agiles Scrum Meeting 11
    [Beta]the Agiles Scrum Meeting 10
    [Beta]the Agiles Scrum Meeting 9
    [Beta]the Agiles Scrum Meeting 8
    2020BUAA-个人博客-案例分析
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/3585446.html
Copyright © 2020-2023  润新知