2016-10-03 59 views
1

任何人都可以幫助我創建批處理文件嗎?基本上,我的目標是創建一個批處理文件,將指定目錄中的所有文件夾中的最新7個文件(換句話說,最新的)。將最新文件保存在子文件夾中的批處理文件

set file2del= 
for /f "skip=7" %%A in ('dir /b/o-d') do set file2del=%%A 
if not "%file2del%"=="" del "%file2del%" 

但這項工作當前目錄。

回答

1

試試這個:

首先使用FOR /D用(從那裏蝙蝠開始)的/R切換到遞歸循環上的所有文件夾。並在每個目錄上應用FOR /F循環。

@echo off 

for /d /r %%a in (*) do (echo Treating Diretory ==^> %%a 
    for /f "skip=7" %%b in ('dir /b/o-d "%%a"') do del "%%a\%%b" 
) 

如果你需要更多的東西的相關詳細,你可以代替SKIP=7的使用計數器:

@echo off 
setlocal enabledelayedexpansion 


for /d /r %%a in (*) do (echo Treating Diretory ==^> %%a 
    set /a $count=1 
    for /f %%b in ('dir /b/o-d "%%a"') do (
      if !$count! LEQ 7 (
       echo Keeping File[!$count!] ==^> %%b 
       set /a $count+=1 
     ) else (echo Deleting File ==^> %%a\%%b 
        del "%%a\%%b") 
    ) 
) 
0
set "specificDir=c:\temp\" 
for /f "skip=7" %%A in ('dir /b /o-d /a-d "%specificDir%"') do del "%%~fA" 

應該做的。我添加了/a-d以排除文件夾,使用%%~fA獲取完整的文件名,包括驅動器/路徑,並在其周圍放置引號以安全地處理帶有空格的文件名(或路徑)。

相關問題