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

Batch file 删除除具有特定字符串的文件名以外的所有文件,batch-file,delete-file,Batch File,Delete File,我有1000个文件,比如TOP\u querys-abc.com.au.csv,TOP\u querys-www.abc.com.au.csv,TOP\u querys-m.lmn.com.au.csv,TOP\u querys-blog.com.au.csv和get files.php 是否可以从文件夹中删除除以blog.、m.、www和.php开头的文件以外的所有.csv文件 我知道这在php中是可能的,但如何在批处理文件中实现呢?@ECHO OFF SETLOCAL 设置“targetdi

我有1000个文件,比如
TOP\u querys-abc.com.au.csv
TOP\u querys-www.abc.com.au.csv
TOP\u querys-m.lmn.com.au.csv
TOP\u querys-blog.com.au.csv
get files.php

是否可以从文件夹中删除除以
blog.
m.
www
.php
开头的文件以外的所有.csv文件

我知道这在php中是可能的,但如何在批处理文件中实现呢?

@ECHO OFF
SETLOCAL
设置“targetdir=U:\destdir”
设置“exclude=blog.m.www。”
对于/f“delims=”%%a IN(
'dir/b/a-d“%targetdir%\*.csv”'
)做(
ECHO%%a | findstr/B/L“%exclude%”NUL
如果错误级别1回显(删除“%targetdir%\%%a”
)
后藤:EOF
这将为您完成任务。您需要更改
targetdir
的设置以适应您的环境

所需的DEL命令仅用于测试目的。
ECHO
ed。验证命令正确后,将
ECHO(DEL
更改为
DEL
以实际删除文件

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


效率修订:

@ECHO关闭
SETLOCAL
设置“targetdir=U:\destdir”
设置“exclude=blog.m.www。”
对于/f“delims=”%%a IN(
'dir/b/a-d“%targetdir%\*.csv”^ findstr/b/L“%exclude%”
)DO(回显(删除“%targetdir%\%%a”
)
后藤:EOF

Um-您声明了“所有文件”,您还声明了“所有.csv文件”,请澄清…感谢您的程序@Magoo。我所说的“所有文件”仅指所有
.csv
文件。
@ECHO OFF SETLOCAL SET”targetdir=C:\Users\user\Desktop\New“SET”exclude=blog.m.www.“for/f”delims=“%%IN('dir/b/a-d”%targetdir%\*.csv'))DO(ECHO%%a|findstr/B/L“%exclude%”NUL IF ERRORLEVEL 1 DEL“%targetdir%\%%a”GOTO:EOF
我添加了此代码,但它没有删除任何内容!我的错误是什么?当我ECHO ed时,它给了我所有程序的列表,包括那些必须排除在外的程序who、Neddy!或Penny-随便什么。
ECHO的全部目的是什么(
是为了确保在出现错误时不会删除文件,以及“所有程序的列表?包括排除的程序”是一个错误。我们必须首先修复它。一旦我们有了正确的文件列表,然后我们才能继续实际删除。警告…效率代码的修订使oposite的事情…删除所有被排除的文件!