2014-01-11 47 views
0

我見過很多關於如何保留最後x個文件並刪除其餘文件的例子,但是無法更改代碼以用於文件夾。我正在查找批處理文件以查看文件夾(C:\ backups)並刪除除最後10個文件夾以外的所有文件夾。保留最後10個文件夾,刪除其餘的文件夾

+0

你是什麼意思'最後folders'是什麼意思? 「上次修改」還是「上次創建」或按字母順序排列? – Dipto

+0

最後創建的文件夾名爲20140101,20140102 .. YYYYMMDD –

+0

顯示您的現有代碼 – Dipto

回答

2

這個工作對我的殼,你只需要細微的變化:

for /f "skip=10delims=" %A in ('dir /b /ad /o-n "%UserProfile%\test\*"') do @echo rd /s /q "%UserProfile%\test\%~A" 
+0

Servus nachÖsterreich:)在這個問題上試試你的答案https://stackoverflow.com/questions/31787056/windows-batch-file-to-backup-local-mysql-databases-only-keep-n-latest-folders wanting只保留3個(僅用於測試)最新的文件夾,但它不起作用。告訴我文件未找到。如果你有一點時間,你可以請幫助嗎? ('dir/b/ad/on'%backupDir%\%dirName%\ *'')中有'for/f「skip = 3 delims =」%A do @echo rd/s/q「%backupDir% \%dirName%\%〜A「'但它不想刪除文件夾。我不知道爲什麼。謝謝你幫忙。 – lowtechsun

0

以下可能工作,但未經過測試。

@echo off 
for /d %%k in (*) do set count=%%k 

:loop1 
dir /ad /b /on > dirlst 
set /p TOP=<dirlst 
del dirlst 
rd %TOP% 
set /a count=count-1 
if %count% GTR 10 goto loop1 
+0

'del'只刪除文件,而不是文件夾。 – Endoro

+0

哎呀!,更正了..謝謝指出@Endoro。 – Dipto

相關問題