代码之家  ›  专栏  ›  技术社区  ›  Droidman

批处理脚本删除包含某些字符的文件

  •  1
  • Droidman  · 技术社区  · 11 年前

    我几乎没有批处理的经验,但现在我需要一个脚本来删除 包含的所有文件 文件夹中名称中的某些字符 及其子文件夹 在Windows 64上。我只是批量地做一些简单的事情,比如

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

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

    编辑 更确切地说,问题是“如何告诉批处理包含子文件夹?”

    2 回复  |  直到 11 年前
        1
  •  7
  •   Damien_The_Unbeliever    11 年前

    这个 /s 开关存在于相当多的命令上(包括 del )

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

    对的帮助 del /? 说:

    /S            Delete specified files from all subdirectories.
    
        2
  •  3
  •   Endoro    11 年前

    试试这个:

    @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 命令,如果输出正常。

    您也可以指定 我的搜索字符串 仅适用于文件名:

    @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"