删除其中包含“特定”字词的文件

时间:2016-02-26 12:21:41

标签: windows batch-file

所以我有一个大约300个.txt文件的文件夹,全部命名如下

ERROR WITH Position Post_20162602_052055.txt
ERROR WITH Position Post_20162602_052053.txt
ERROR WITH Position Post_20162602_052102.txt
INCOMPLETE MESSAGE_20162602_052102.txt
EXCEPTION ERROR_20162602_052102.txt

我想创建一个批处理文件,只删除文件夹中的INCOMPLETE MESSAGE_20162602_052102.txtEXCEPTION ERROR_20162602_052102.txt错误。所有文件都是唯一的,它们之间唯一的共同点是Position PostINCOMPLETE MESSAGEEXCEPTION ERROR

我尝试过使用下面的代码,但是文件名中的空格似乎有问题,我很确定它会查找文件而不是文件名。

@echo off
FOR /F"delims=;" %%a in ('findstr /m /i "EXCEPTION ERROR INCOMPLETE MESSAGE" C:\test\*.txt') do (
@echo %%a
del %%a
)

我看了一下bash的FIND函数,但我找不到为文件名中的特定单词设置"search variable"的方法。

2 个答案:

答案 0 :(得分:2)

试试这样:

@echo off
setlocal EnableDelayedExpansion
Set Folder=c:\Dataexports
set Log=FileList.txt
If Exist %Log% Del %Log%
Set Exp="EXCEPTION ERROR" "INCOMPLETE MESSAGE"
(
    For %%a in (%Exp%) Do (
        For /f "delims=" %%b in ('Dir /s /b "%Folder%\*.txt" ^| find %%a /i') do ( set File=%%b
            echo "!File!" & Del "!File!"
        )
    )   
)>>%Log% 2>&1
Start "" %Log%

答案 1 :(得分:1)

del "INCOMPLETE MESSAGE*.txt" "EXCEPTION ERROR*.txt"是如何做到的。

相关问题