2016-02-04 33 views
0

我有一個小批處理作業需要根據某些通配符參數刪除文件夾中的文件。刪除功能的作品,但我也需要記錄在一個單獨的日誌文件中刪除的文件。 我所有的程序都會循環使用通配符變量,並在運行del命令之前將它們組合在一起。 但我如何列出所有將被刪除的文件?Windows批處理 - 基於通配符列出文件

這裏是我的批處理程序:

set source[0]="C:\WORK\1\" 

set source[1]="C:\WORK\2\" 

set source[2]="C:\WORK\3\" 

set NameStart[0]="e3" 

set NameStart[1]="e4" 

set NameMid[0]=* 

set NameMid[1]= 

set NameEnd[0]=".gz" 

set NameEnd[1]=* 






date /T >log.txt 

time /T >>log.txt 

echo Delete commands to be executed : >> log.txt 

echo Delete commands to be executed : 


Pause 


::loop folders 

echo Delete Started... 

for /F "tokens=2 delims==" %%s in ('set source[') do ( 

::loop files 

    for /f "tokens=2 delims==" %%b in ('set NameStart[') do ( 

    for /f "tokens=2 delims==" %%m in ('set NameMid[') do ( 

     for /f "tokens=2 delims==" %%e in ('set NameEnd[') do (  

       del %%s%%b*%%m*%%e 2> nul 

       echo del %%s%%b*%%m*%%e >> log.txt   



     ) 
     ) 
    ) 
) 

echo Delete Finished! 

Pause 

回答

0
del /s /q "C:\WORK\1\Yourpattern1" "C:\WORK\1\Yourpattern1.gz" "C:\WORK\2\Yourpattern1" "C:\WORK\2\Yourpattern1.gz" "etc" > logfile.txt 

任何原因,你的代碼是如此令人費解。

+0

我被要求創建一個帶有參數的批處理文件,以便用戶可以輸入要刪除的地方和內容,這就是爲什麼我擁有所有這些for循環。 我發現當我使用del和通配符的問題是,當它找不到我需要避免的匹配時發生File Not found錯誤 – user2642775

相關問題