forfiles用法及示例

1. 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形式使用十六進制代碼(例如,0x09 爲 tab)。
    
                          內部 CMD.exe 命令前面應以 "cmd /c" 開始。
    
      /D    date       選擇文件,其上一次修改日期大於或等於 (+),或者小於或等於 (-)"yyyy/MM/dd" 格式指定的日期;
    
                          或選擇文件,其上一次修改日期大於或等於 (+) 當前日期加 "dd" 天,或者小於或等於 (-) 當前
    
                          日期減 "dd" 天。有效的 "dd" 天數可以是0 - 32768 範圍內的任何數字。如果沒有指定,
    
                          "+" 被當作默認符號。
    
      /?                  顯示此幫助消息。
    

2. 示例

  • 遍歷當前目錄顯示所有文件名
forfiles /c "cmd /c echo @file"
// /c表示將執行後面的指定,必須用雙引號
  • 遍歷當前目錄顯示所有文件全路徑
forfiles /c "cmd /c echo @path"
// @path表示文件路徑變量
  • 遍歷指定目錄顯示所有文件名
forfiles /p d:\folder /c "cmd /c echo @file"
// /p後面指定的是目錄,爲了防止目錄中有空格,最好加上雙引號""
  • 遍歷指定目錄(包括子目錄)並顯示所有文件名
forfiles /p d:\folder /s /c "cmd /c echo @file"
// /s表示遍歷子目錄
  • 遍歷指定目錄(包括子目錄)中指定後綴名的文件並顯示所有文件名
forfiles /p d:\folder /s /M *.log /c "cmd /c echo @file"
// /M指定搜索文件的掩碼,也即通配符
  • 遍歷指定目錄(包括子目錄)中指定後綴名的文件,並指定修改時間相隔多少天以顯示
forfiles /p d:\folder /s /M *.log /d -4 /c "cmd /c echo @file"
// /d -4,指定與當前時間相隔及以上的文件
  • 遍歷指定目錄顯示指定日期之前的文件
forfiles /p d:\folder /d -2018/02/03 /c "cmd /c echo @file"
// /d -2018/02/03 限定2018/02/03之前的文件
  • 遍歷指定目錄顯示指定日期之後的文件
forfiles /p d:\folder /d +2018/02/03 /c "cmd /c echo @file"
// /d -2018/02/03 限定2018/02/03之前的文件
  • 遍歷指定目錄顯示指定日期之後的文件並刪除
forfiles /p d:\folder /d +2018/02/03 /c "cmd /c del /f /q @path"
// /c del /f /q刪除@path路徑文件,/f是強制刪除只讀文件,/q 安靜模式,即不提示確認刪除
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章