删除除具有特定字符串的文件名之外的所有文件
Delete all files except filenames with specific string
我有 1000 个文件,例如 TOP_QUERIES-abc.com.au.csv
、TOP_QUERIES-www.abc.com.au.csv
、TOP_QUERIES-m.lmn.com.au.csv
、TOP_QUERIES-blog.com.au.csv
和 get-files.php
是否可以删除文件夹中的所有 .csv 文件,但文件夹中以 blog.
、m.
、www
和 .php
开头的文件除外?
我知道它在 php 中是可行的,但我如何在批处理文件中实现?
@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
我有 1000 个文件,例如 TOP_QUERIES-abc.com.au.csv
、TOP_QUERIES-www.abc.com.au.csv
、TOP_QUERIES-m.lmn.com.au.csv
、TOP_QUERIES-blog.com.au.csv
和 get-files.php
是否可以删除文件夹中的所有 .csv 文件,但文件夹中以 blog.
、m.
、www
和 .php
开头的文件除外?
我知道它在 php 中是可行的,但我如何在批处理文件中实现?
@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