寫了個刪除編譯檔案的批處理程式

2021-06-09 22:34:12 字數 2090 閱讀 9693

平時專案開發中時常需要清理臨時編譯檔案,比如清理

obj檔案、

pdb檔案等,於是想寫乙個小工具實現這個功能。

要實現這個功能,要選擇合適的工具。首先想到使用批處理檔案是最好的實現方式。於是寫了個批處理檔案,**如下:

:: file: 清除臨時編譯檔案.bat

:: purpose: 清除臨時編譯檔案

:: author: zjc

:: time:2012.10.01

del *.map /s>>logs.txt>logs.txt

del *.trg /s>>logs.txt

del *.tlb /s>>logs.txt

del *.sym /s>>logs.txt

del *.vxd /s>>logs.txt

del *.386 /s>>logs.txt

del *.exp /s>>logs.txt

del *.pel /s>>logs.txt

del *.rsp /s>>logs.txt

del *.res /s>>logs.txt

del *.pdb /s>>logs.txt

del *.pch /s>>logs.txt

del *.sbr /s>>logs.txt

del *.bsc /s>>logs.txt

del *.plg /s>>logs.txt

del *.ncb /s>>logs.txt

del *.opt /s>>logs.txt

del *.aps /s>>logs.txt

del *.tmp /s>>logs.txt

del *.ilk /s>>logs.txt

del *.idb /s>>logs.txt

del *.sup /s>>logs.txt

del *.tlh /s>>logs.txt

del *.tli /s>>logs.txt

@for /f "delims=" %%i in ('dir *.obj /s /b^|find "\release\"') do del "%%i">>logs.txt

@for /f "delims=" %%i in ('dir *.obj /s /b^|find "\debug\"') do del "%%i">>logs.txt

@for /f "delims=" %%i in ('dir /s /b /ad^|find "\release"' ) do rd /q "%%i">>logs.txt

@for /f "delims=" %%i in ('dir /s /b /ad^|find "\debug"' ) do rd /q "%%i">>logs.txt

稍微解釋下這個程式,

del *.tli /s>>logs.txt 就是刪除tli為字尾的檔案,然後把它寫到日誌裡。

@for /f "delims=" %%i in ('dir *.obj /s /b^|find "\release\"') do del "%%i">>logs.txt 就是把release檔案下的obj檔案列出來然後刪除掉。

@for /f "delims=" %%i in ('dir /s /b /ad^|find "\release"' ) do rd /q "%%i">>logs.txt

就是迴圈刪除在release檔案下的上面指定字尾的檔案。

logs.txt 為生成的刪除檔案的日誌檔案,裡面記錄了已經刪除了的檔案。

這條批處理檔案的擴充套件方式是這樣的:如果你要增加乙個刪除字尾,就在del語句後面增加一行,如增加刪除htm檔案:del *.htm /s>>logs.txt。若要增加乙個obj檔案所在的檔案,就新增一行

@for /f "delims=" %%i in ('dir *.obj /s /b^|find "\release\"') do del "%%i">>logs.txt

將你的資料夾替換上面的\release\資料夾就行。

@for /f "delims=" %%i in ('dir /s /b /ad^|find "\debug"' ) do rd /q "%%i">>logs.txt

將你的資料夾替換上面的\debug資料夾就行。

乙個檔案處理的批處理

目錄c dat 有三個這樣的檔案,2008a.txt,2009b.txt,2008c.txt,其中2008是代表年份,可變的,後面的檔名不可變 我想實現這樣的操作 1.把dat下面所有的檔案的年份取出來,寫到year.txt檔案中,a 2008 b 2009 c 2008 2。然後把檔名的年份去掉變...

刪除多天以前的檔案批處理命令

前兩天專案支援的系統 ams prod dd p盤快滿了。找到原因是清理舊檔案的housekeeping job配置不正確,很多老檔案沒有被清理。因為磁碟空間一旦填滿整個程式就掛了,需要馬上加磁碟或者清理空間。嘗試用ps來查詢一段時間以前的檔案再移到另外的資料夾裡去,但是因為剩餘空間小執行的效果不好...

Windows下強制刪除檔案的批處理檔案

del f a q 1 rd s q 1 將上邊 另存為 bat檔案 將需要刪除的檔案向這個檔案上放,刪除需謹慎。另外在實際使用中可以在這兩條指令後加 nul,執行時將不顯示命令。解釋 del 刪除命令。f 強制刪除唯讀檔案。s 從所有子目錄刪除指定檔案。q 安靜模式。刪除全域性萬用字元時,不要求確...