2013-04-22 124 views
0

我有一批几乎没有任何经验,但现在我需要一个脚本来删除在Windows 64.我所有包含一个文件夹在他们的名字某些字符的文件夹及其子只做简单的事情批量像批处理脚本删除文件containining某些字符

del "C:\TEST\TEST2\*.TXT" 

但我不知道如何执行我需要的过滤。 有人可以帮助我实现这个使用批次?

编辑更准确地说,问题是“如何判断批次包含子文件夹?”

回答

2

试试这个:

@echo off & setlocal 
set "MySearchString=X" 
for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /i "%MySearchString%"') do echo del "%%~i" 

设置变量MySearchString的字符或字符串搜索和删除echo命令,如果输出确定。

您还可以指定MySearchString只有文件名:

@echo off & setlocal 
set "MySearchString=T" 
for /r %%a in (*) do for /f "delims=" %%i in ('echo("%%~na" ^| findstr /i "%MySearchString%"') do echo del "%%~fa" 
+0

This works,thx – Droidman 2013-04-22 11:00:17

+0

@ Maver1ck考虑对大目录使用Damien_The_Unbeliever选项,因为Endoro脚本首先需要使用dir命令处理所有文件,然后过滤输出,然后处理输出行,如果进行该操作例如在根目录“C:\”中,那么你将浪费x3的时间来处理这些文件。你也可以使用Forfiles命令。 – ElektroStudios 2013-04-22 11:04:03

+1

OP希望“删除包含某些字符的所有文件”而不是“删除所有子目录中的所有文本文件”。 Damien_The_Unbeliever选项不足,因为您对批处理编程的知识'> |'。这不取决于无知的用户在这个有趣的SO操场上的提升:-))。 – Endoro 2013-04-22 11:16:07

6

/s开关相当多的命令存在(包括del

del /s "C:\TEST\TEST2\*.TXT" 

del /?帮助说:

/S   Delete specified files from all subdirectories. 
相关问题