Recursively delete all folders starting with

后端 未结 5 659
礼貌的吻别
礼貌的吻别 2021-02-05 20:24

I need to write a command in a .bat file that recursively deletes all the folders starting with a certain string. How may I achieve this ?

相关标签:
5条回答
  • 2021-02-05 21:03

    rm -rf -- "Directory name"

    Ex : rm -rf -- "-2096378"

    Above command will deletes the folders/directories starting with - or wildcard characters

    0 讨论(0)
  • 2021-02-05 21:07

    How about:

    for /d %a in (certain_string*) do rd /s %a
    

    This will work from the command prompt. Inside a batch file, you would have to double the %s, as usual:

    @echo off
    for /d %%a in (certain_string*) do rd /s %%a
    
    0 讨论(0)
  • 2021-02-05 21:18
    FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i
    
    0 讨论(0)
  • 2021-02-05 21:20

    Unfinished, I think. If you meant "Recursively go down a directory hierarchy to delete all folders starting with a certain string", then the following might suffice:

    for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"
    

    This will recurse into the directory tree, finding all folders starting with "abc", iterate over that list and removing each folder.

    Maybe you need to wrap an if exist around the rd depending on the order in which directories are found and returned. In general, iterating over something and changing it at the same time is rarely a good idea but sometimes it works :-)

    0 讨论(0)
  • 2021-02-05 21:29

    This is the complete answer you are looking for:

    FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"
    

    where obviously you need to replace certain_string with the string your folders start with.

    This deletes RECURSIVELY as you asked (I mean it goes throught all folders and subfolders).

    0 讨论(0)
提交回复
热议问题