批次刪除檔案與空目錄

更新 發佈閱讀 16 分鐘

1     作業流程

1.1 先取得欲刪除檔案集的相關資訊,並輸入5個參數值

1.2 依照取得的參數值,執行欲刪除的檔案   

1.3檔案刪除執行後,若目錄為空,則執行刪除該空目錄       

          

2     作業說明  

2.1  欲刪除檔案之的相關內容,使用者指定輸入,並設定如下5個參數

 PAR1--- 來源資料夾位址,  例D:\BACKUP

 PAR2 --- 幾天前檔案欲刪除,例 -30 or -2023/12/31 default=0

 PAR3--- 欲刪除檔案之名稱與副檔名 ,例TW*.txt or *高雄*  default=*.*

      PAR4--- 執行後出力檔案之存放路徑,例D:\BK   default=D:\DESTINATION

      PAR5--- 刪除作業之判斷,當輸入D 時,執行檔案刪除;

                    輸入非D 時,不會刪除檔案,只提供確認參考

輸入非D 時,如set PAR5=h , 則不會刪除,只會出力符合條件的file

結果txt出力如下:

**---The below parameters you want to process ---    週五 2024/07/05 15:04:47.59---

**1 Source path     :D:\TEST_BK

**2 Date or days    :-2024/10/1

**3 Sring of files  :*.pptx

**4 Destination path:D:\DESTINATION

ECHO is on.

 

 [ Inquired file list ] 

 

"D:\TEST_BK\新增 Microsoft PowerPoint 簡報.pptx"

**-------------------------------------- Finished at 週五 2024/07/05 15:04:47.66---

 

其他 參數 設定參考:

       set PAR1=D:\TEST_BK        

       set PAR2=-90      

       set PAR3=*.mp4*       

       set PAR4=D:\DESTINATION        

       set PAR5=D

          

2.2 刪除作業 

* 指定之來源資料夾(PAR1)目錄下包含子目錄下的檔案,若符合就刪除       

* 若刪除執行發生錯誤時,仍會繼續不會中斷,且將錯誤訊息出力至txt file供參考        

     

2.3 刪除空目錄作業, 即執行CALL  RD_EMPTY_fix-par.cmd   

2.3.1 來源目錄下每個目錄,每次執行都會查看是否存在檔案,若該目錄下0個檔案,則執行刪除該目錄

2.3.2 空目錄被刪除後,出力至txt檔案,記錄該目錄名稱

 

3     實例說明

3.1 來源目錄之指定

 本例設定為   set PAR1= D:\TEST_BK

3.2出力檔案名 : Inquiry_error_result.txt

<1>刪檔案錯誤場合

       若不能刪除檔案 會列出原因 (因權限關係,無法讀取)

<2>正常刪檔案場合

       刪除檔案正常時,txt列出訊息如下:

 **---The below parameters you want to process ---    週五 2024/07/05 15:15:20.94---

**1 Source path     :D:\TEST_BK

**2 Date or days    :-2024/7/31

**3 Sring of files  :*.*

**4 Destination path:D:\DESTINATION

ECHO is on.

 

 [ Cannot DEL file ] 

**-------------------------------------- Finished at 週五 2024/07/05 15:15:21.12---

<3>找無對象檔案場合,

   因為選取日期 +2025/1/1 ,故找無檔案,執行結果出力於 Inquiry_error_result.txt 內容如下:

 **---The below parameters you want to process ---    週五 2024/07/05 14:34:47.43---

**1 Source path     :D:\TEST_BK

**2 Date or days    :+2025/1/1

**3 Sring of files  :*.*

**4 Destination path:D:\DESTINATION

ECHO is on.

 

 [ Cannot DEL file ] 

  ERROR: No files found with the specified search criteria. 

**-------------------------------------- Finished at 週五 2024/07/05 14:34:47.56---

3.3 空目錄被刪除後,作業結果訊息出力至txt,empFOLDER_RD.txt內記錄兩個空目錄被刪除,參考如下:


[ Empty folder rased ] ----- on 週五 2024/07/05 14:34:47.57 

  "D:\TEST_BK\LDPlayer"   

  "D:\TEST_BK\YunGameDownload\leidian\Plugins"   

 

4     運用效果

4.1定期執行自動刪除作業bat,可節省硬體空間

4.2將bat設定自動排程,刪除檔案之作業,省下人力工時,提升工作效率

 

5     將來運用  

5.1 個人電腦內各個硬碟槽或伺服器公用槽內資料夾,均可比照運用  

5.2 各應用系統內各種平日交易檔案,歷史紀錄log檔等,均可比照運用,否則老舊過期檔案一直增加,將使硬碟容量龐大,影響系統效能或致系統異常當機。       

          

6     設計撰寫 :        

6.1刪除檔案之 Bat :DelF+RD.bat 

rem echo off
CHCP 65001
rem ----本檔案需保存為 UTF-8 ,CHCP 65001 為了顯示特殊字元(漢字日文) 。big5 ,CHCP 950
rem 入力檔目錄需先輸入,出力檔案名 Inquiry_error_result.txt
D:
cd D:\LINCT_material\PC\cmd-bat\cmd\Manipulate_file\Del99

rem ---[Noted] 不可用Iset PAR1=I:\99.暫存資料 ,因 schedule task 無法認得 ----
set PAR1=D:\TEST_BK

set PAR2=-2024/7/31
set PAR3=*.*
set PAR4=D:\DESTINATION
set PAR5=D

set PAR_ERR=N

IF NOT EXIST "%PAR1%" (echo ###ERROR : %PAR1% is not exist & set PAR_ERR=Y & goto END )
IF NOT EXIST %PAR4% ( md %PAR4% )
rem pause chk par1:%PAR1% par4:%PAR4% -----

echo **---The below parameters you want to process --- %DATE% %TIME%---> %PAR4%\Inquiry_error_result.txt
echo **1 Source path :%PAR1% >> %PAR4%\Inquiry_error_result.txt
echo **2 Date or days :%PAR2% >> %PAR4%\Inquiry_error_result.txt
echo **3 Sring of files :%PAR3% >> %PAR4%\Inquiry_error_result.txt
echo **4 Destination path:%PAR4% >> %PAR4%\Inquiry_error_result.txt
echo >> %PAR4%\Inquiry_error_result.txt

echo *** Files 執行中...for "%PAR1%" %PAR2% %PAR3% %PAR4% %PAR5%
IF %PAR5% == D ( CALL :DELFile ) else ( CALL :FIND )

:END
:: ---Noted "%PAR1%" 需有" " ,因資料夾名有(),致IF 指令語法錯誤 ---
IF %PAR_ERR% == Y (
echo *** Job ABEND 異常中止 for "%PAR1%" or %PAR4% is not exist---
echo *** Job ABEND 異常中止 for "%PAR1%" or %PAR4% is not exist---> %PAR4%\Inquiry_error_result.txt
) ELSE (
echo *** Files 執行完了 for "%PAR1%" %PAR2% %PAR3% %PAR4% %PAR5%
echo *---Please check result file save in %PAR4%\Inquiry_error_result.txt )
echo **-------------------------------------- Finished at %DATE% %TIME%--->> %PAR4%\Inquiry_error_result.txt
rem pause del end chk??

CALL RD_EMPTY_fix-par.cmd

rem pause job final end
EXIT

:DELFile
:: ---- del file 若成功del 無訊息印出, 只有錯誤有發生時,才會印出 ----
echo. >> %PAR4%\Inquiry_error_result.txt
echo [ Cannot DEL file ] >> %PAR4%\Inquiry_error_result.txt

For /f "tokens=* delims=?" %%A in ( 'forfiles /P "%PAR1%" /S /D %PAR2% /M "%PAR3%" /c "cmd /c del /F /Q /A @path" 2^>^&1 ' ) do ( echo %%A >> %PAR4%\Inquiry_error_result.txt )
exit /b

:FIND
echo. >> %PAR4%\Inquiry_error_result.txt
echo [ Inquired file list ] >> %PAR4%\Inquiry_error_result.txt
:: ---- echo inquiry all file list out, 包括存取被拒的file 也會印出 ----
forfiles /P "%PAR1%" /S /D %PAR2% /M "%PAR3%" /c "cmd /c echo @path ">>%PAR4%\Inquiry_error_result.txt 2^>^&1
exit /b


6.2刪除空目錄之cmd : RD_EMPTY_fix-par.cmd

rem ----本檔案需保存為 UTF-8 ,CHCP 65001 為了顯示特殊字元(漢字日文) -----
rem ---檢查目錄下含子目錄,若為空,則只刪除該下之空目錄 ,並出力 D:\DESTINATION\empFOLDER_RD.txt----
rem @echo on
@echo off
rem CHCP 65001
rem ---注意本for只找出目錄(含子目錄),沒找出file,
rem echo [ Empty folder rased ] ----- on %DATE:~0,4%/%DATE:~5,2%/%DATE:~8,2% >D:\DESTINATION\empFOLDER_RD.txt
echo [ Empty folder rased ] ----- on %DATE% %TIME% >D:\DESTINATION\empFOLDER_RD.txt

echo. >>D:\DESTINATION\empFOLDER_RD.txt
set /a n=0
set n_p1=N

:: ----PAR1 FIX 取得 -------
:Enter_par1

IF NOT EXIST "%PAR1%" ( echo ###ERROR : %PAR1% path is not exist & goto EOF )

for /f "delims=" %%i in ('dir "%PAR1%" /ad /b /s') do CALL :AAA "%%i"
if %n_p1%==N ( CALL :RD_Process "%PAR1%" )
echo --- To check RD result in D:\DESTINATION\empFOLDER_RD.txt-----
exit /b
rem goto EOF

rem ---找出的目錄內 存有的目錄與檔案共有幾個file,若0個,即是為空目錄,則 rase dir ---------
rem ---需有"delims=" 又 參數 %%i必須加" ", 這樣目錄名/檔名有空白,才可完整取出 ----
:AAA
set n_p1=Y
set /a n=0

for /f "delims=" %%j in ('dir %1 /a /b ' ) do ( set /a n=n+1 )
if %n%==0 ( CALL :RD_Process %1 )
exit /b

:RD_Process
RD %1
echo %1 >>D:\DESTINATION\empFOLDER_RD.txt
echo ====== To check dir=%1 , file cnt=%n% , PAR1_ALL_emp=%n_p1%
exit /b

:EOF
rem pause --- job is normal end


6.3   bat檔案需保存為 UTF-8 ,cmd 追加CHCP 65001 為了能正常顯示特殊字元漢字或日文 

------by linct-------

留言
avatar-img
linct的沙龍
80會員
296內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
看更多
你可能也想看
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
在 Windows 中,一般是透過應用程式介面刪除應用程式,但有時候會因為用多了 linux 系統而習慣自己手動刪除應用程式 🤣,但在 windows 系統這樣操作的話會出現一個小問題 -> 就是明明應用程式已經不在了,但是在「已安裝的應用程式」的清單中卻還能看到它,這篇就來教大家如何將它們刪除
Thumbnail
在 Windows 中,一般是透過應用程式介面刪除應用程式,但有時候會因為用多了 linux 系統而習慣自己手動刪除應用程式 🤣,但在 windows 系統這樣操作的話會出現一個小問題 -> 就是明明應用程式已經不在了,但是在「已安裝的應用程式」的清單中卻還能看到它,這篇就來教大家如何將它們刪除
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News