Windows批处理 - 根据通配符列出文件

时间:2016-02-04 17:43:41

标签: loops batch-file window

我有一个小型批处理作业,需要根据一些通配符参数删除文件夹中的文件。删除功能有效但我还需要记录在单独的日志文件中删除的文件。 我的所有程序都是循环通配符变量并在运行del命令之前将它们组合在一起。 但是,如何列出将要删除的所有文件?

这是我的批处理程序:

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

1 个答案:

答案 0 :(得分: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

您的代码如此错综复杂的原因。