iT邦幫忙

0

forfiles BAT刪除資料夾問題

  • 分享至 

  • xImage

各位先進好~
要把server較久之前的備份刪除,
資料夾名都是日期(一天產出一次),
目前要刪除了約是一個月前的資料夾,
我的語法是
ForFiles /p "D:\BAK" /s /d -30 /c "cmd /c del /q @file"
問題:執行完後都只刪除資料夾內的檔案,資料夾卻都沒刪除
所以BAK裡面還有好幾天的資料夾存在,可裡面是空的
請問語法哪邊要改變才能連同資料夾都刪除?
能讓BAK資料夾內只留30天內的備份資料夾。
謝謝!!

可以刪除沒有檔案的空資料匣
```
set PP=d:
dir %PP% /ad /b /s |sort /r >>%PP%kill.txt
For /f %%i in (%PP%kill.txt) DO rd %%i

```
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
腰果花生糖
iT邦新手 1 級 ‧ 2022-11-30 11:27:59
最佳解答

試試這樣
forfiles /p "D:\BAK" /s /m * /d -30 /c "cmd /c if @isdir == TRUE rd /S /Q @path"

刪除D槽BAK資料夾下,超過30天的所有資料夾

邊緣人 iT邦新手 3 級 ‧ 2022-11-30 15:03:23 檢舉

成功了,感謝前輩~
if @isdir == TRUE rd /S /Q @path"
請教一下前輩後面這一段的意思?

forfiles

參考自微軟網站
檢測是否路徑下為資料夾,若是資料夾則進行刪除

邊緣人 iT邦新手 3 級 ‧ 2022-12-01 08:42:52 檢舉

了解,感謝前輩!

1
johncoc
iT邦新手 3 級 ‧ 2022-11-28 16:49:35
邊緣人 iT邦新手 3 級 ‧ 2022-11-29 14:31:48 檢舉

試過了,一樣指刪除資料夾內的檔案,例如我的BAK裡面有,
2022/10/01
2022/10/02
.
.
2022/10/30
結果我跑完批次檔都只刪除日期資料夾內的檔案,但資料夾本身沒刪,我想設定連同資料夾也跟著刪除。

1
copemoe
iT邦好手 3 級 ‧ 2022-11-28 16:55:37
邊緣人 iT邦新手 3 級 ‧ 2022-11-29 14:31:54 檢舉

試過了,一樣指刪除資料夾內的檔案,例如我的BAK裡面有,
2022/10/01
2022/10/02
.
.
2022/10/30
結果我跑完批次檔都只刪除日期資料夾內的檔案,但資料夾本身沒刪,我想設定連同資料夾也跟著刪除。

copemoe iT邦好手 3 級 ‧ 2022-11-29 16:55:24 檢舉

那指定刪除 空資料夾呢?

@echo off
for %%i in (c d e f) do (
   if exist %%i:\ (
      for /f "delims=" %%a in ('dir /ad /b /s "%%i:\"^|sort /r') do (
         rd "%%a"
      )
   )
)
pause
0
by2048
iT邦高手 1 級 ‧ 2022-11-29 09:08:45

for /f "usebackq" %%d in ("dir D:\BAK /ad/b/s | sort /R") do rd "%%d"

刪目錄不成功https://ithelp.ithome.com.tw/upload/images/20221205/20117635xo25kFz47t.jpg
刪目錄裡面的檔案後
https://ithelp.ithome.com.tw/upload/images/20221205/20117635EvghuMwKjV.jpg

邊緣人 iT邦新手 3 級 ‧ 2022-11-29 14:31:59 檢舉

試過了,一樣指刪除資料夾內的檔案,例如我的BAK裡面有,
2022/10/01
2022/10/02
.
.
2022/10/30
結果我跑完批次檔都只刪除日期資料夾內的檔案,但資料夾本身沒刪,我想設定連同資料夾也跟著刪除。

0
aaronhunter
iT邦新手 2 級 ‧ 2022-11-30 08:45:58

括號內的雙引號前後加個波浪鍵上那個符號(這裡打不出來),試試看。

我要發表回答

立即登入回答