删除除具有特定字符串的文件名以外的所有文件

时间:2015-01-05 06:57:48

标签: batch-file delete-file

我有1000个文件,例如TOP_QUERIES-abc.com.au.csvTOP_QUERIES-www.abc.com.au.csvTOP_QUERIES-m.lmn.com.au.csvTOP_QUERIES-blog.com.au.csvget-files.php

是否可以删除文件夹中的所有.csv文件,但文件夹中以blog.m.www.php开头的文件除外?< / p>

我知道它可能在php中但我怎样才能在批处理文件中实现?

1 个答案:

答案 0 :(得分:3)

@ECHO OFF
SETLOCAL
SET "targetdir=U:\destdir"
SET "exclude=blog. m. www."
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%targetdir%\*.csv" '
 ) DO (
 ECHO %%a | findstr /B /L "%exclude%" >NUL
 IF ERRORLEVEL 1 ECHO(DEL "%targetdir%\%%a"
)

GOTO :EOF

这应该为您完成任务。您需要更改targetdir的设置以适合您的具体情况。

为了测试目的,所需的DEL命令仅为ECHO在您确认命令正确后,将ECHO(DEL更改为DEL以实际删除文件。

排除.php个文件,因为它们与*.csv文件名不匹配 - 或者您是否想要删除从.php开始的文件?如果是这样,只需将.php添加到exclude变量...

即可

效率修订:

@ECHO OFF
SETLOCAL
SET "targetdir=U:\destdir"
SET "exclude=blog. m. www."
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%targetdir%\*.csv" ^| findstr /B /L "%exclude%"'
 ) DO (ECHO(DEL "%targetdir%\%%a"
)

GOTO :EOF