windows下使用bat批量刪除文件(用于內(nèi)存清理)
tips:可以直接點(diǎn)擊目錄中的【?。?!錯(cuò)誤*】查看你對應(yīng)的報(bào)錯(cuò)情況
1、思路
遍歷目標(biāo)文件夾 → 刪除文件
1.1 bat下的for循環(huán)格式:
?。?!注意:
這有一個(gè)大坑,使用參數(shù)“\d”,“\r”時(shí)的格式有差異,除非不寫路徑,就在當(dāng)前目錄下執(zhí)行,兩者差不多。
for [參數(shù)] %%變量名 in (匹配符) do (執(zhí)行的命令) \d: for \d %%變量名 in (路徑\匹配符) do (執(zhí)行的命令) \r: for \r 路徑 %%變量名 in (匹配符) do (執(zhí)行的命令)
參數(shù):
- 無參:遍歷當(dāng)前文件夾下的文件
- /d:遍歷當(dāng)前文件夾下的子文件夾
- /r:深度遍歷當(dāng)前文件夾下的所有文件
- /l:迭代數(shù)值范圍,使用迭代變量設(shè)置起始值,然后逐步執(zhí)行一組范圍的值,直到該值超過所設(shè)置的終止值(這里不詳解)
- /f:用于解析文件內(nèi)容(這里不詳解)
eg:
# 寫法1@echo offfor /r D:\Desktop\test %%i in (*.txt) do echo %%ipause# 寫法2@echo offfor /r D:\Desktop\test %%i in (*) do ( echo %%i)pause# 寫法1 @echo off for /r D:\Desktop\test %%i in (*.txt) do echo %%i pause # 寫法2 @echo off for /r D:\Desktop\test %%i in (*) do ( echo %%i ) pause
同時(shí)想遍歷文件夾和文件這樣寫(最好把括號都加上)
@echo off for /d %%i in (D:\Desktop\test\*) do (echo %%i) for /r D:\Desktop\test %%i in (*) do (echo %%i) pause
@echo off
@echo off 相在批處理運(yùn)行命令時(shí)不顯示命令行信息
@echo on 與不使用等效
@echo off
@echo on 不使用
pause
“暫停”,不加的話cmd窗口就會一閃而過
1.2 bat的刪除
bat下刪除有兩種:rd、del
rd(刪除目錄)參數(shù):
/s:刪除目錄及目錄下的所有子目錄和文件
/q:進(jìn)行刪除時(shí)不提醒。(慎用)
del(刪除文件)參數(shù):
/s:刪除本目錄下及子目錄的文件
/q:同上
/f:刪除只讀文件。
/a:刪除指定屬性或指定屬性以外的文件。(對普通人意義不大)
/AR、/AH、/AS、/AA表示刪除只讀、隱藏、系統(tǒng)、存檔文件,
/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統(tǒng)、存檔以外的文件。
eg:
測試文件夾目錄如下:
共3層,每層都有測試文件
這樣即可以保留原文件夾,又可以刪除文件夾下的目錄和文件。(實(shí)驗(yàn)成功?。。。?/p>
@echo off for /d %%i in (D:\Desktop\test\*) do ( rd /s /q %%i ) for /d %%i in (D:\Desktop\test\) do ( del /s /q %%i ) pause
2、實(shí)施
我用來清理電腦的臨時(shí)文件夾(C盤炸了,當(dāng)然我把有些臨時(shí)文件夾移動到了其他盤)
后面的事情就簡單多了,把上面的路徑改為你想清理的路徑
比如我的Temp文件夾在這:
@echo off for /d %%i in (D:\Desktop\test\*) do ( rd /s /q %%i ) for /d %%i in (D:\Desktop\test\) do ( del /s /q %%i ) pause
雙擊bat文件之后,清理成功(有些正在運(yùn)行的和需要權(quán)限的暫時(shí)無法刪除,不過不影響,清理內(nèi)存夠了),可以把“pause”去掉了。
命令刪除的不會進(jìn)入回收站,相當(dāng)于直接shift+delete的永久刪除,方便又快捷。QwQ
3、del命令入門
實(shí)現(xiàn)方法一:使用del命令
del /s /q <文件路徑\文件名>
這個(gè)命令可以遞歸刪除指定路徑下的所有文件,其中/s參數(shù)表示遞歸刪除,/q參數(shù)表示靜默刪除。
實(shí)現(xiàn)方法二:使用for循環(huán)
for /r <目標(biāo)路徑> %%f in (*) do ( ? ? del /q "%%f" )
這個(gè)方法使用for循環(huán)遍歷指定路徑下的所有文件(包括子文件夾),然后利用del命令刪除文件。其中(*)表示匹配所有文件,/q參數(shù)表示靜默刪除。
實(shí)現(xiàn)方法三:使用PowerShell
Get-ChildItem <目標(biāo)路徑> -Recurse | Remove-Item -Force
這個(gè)方法利用PowerShell的命令,Get-ChildItem獲取指定路徑下的文件和文件夾,-Recurse參數(shù)表示遞歸獲取所有子文件夾及其文件,然后使用Remove-Item命令刪除文件,-Force參數(shù)表示強(qiáng)制刪除。
相關(guān)文章
BAT批處理提取系統(tǒng)時(shí)間的實(shí)現(xiàn)代碼(bug修復(fù))
這篇文章主要介紹了BAT批處理提取系統(tǒng)時(shí)間的實(shí)現(xiàn)代碼(bug修復(fù)),需要的朋友可以參考下2021-09-09bat實(shí)現(xiàn)刪除文本中的空行、空格、制表符、最后一行空行
本文主要介紹了 bat實(shí)現(xiàn)刪除文本中的空行、空格、制表符、最后一行空行2024-02-02批處理bat為照片批量添加隨機(jī)圖片水印(隨機(jī)圖片隨機(jī)位置)
基于bat與ImageMagick實(shí)現(xiàn)的批量添加水印的工具,作者是bat之家的創(chuàng)始人比較厲害,喜歡學(xué)習(xí)bat的朋友看看2023-11-11