Command line tool to delete folder with a specified name recursively in Windows?

WindowsFileUtilitiesAdministration

Windows Problem Overview


I want to delete every "_svn" in every folder and subfolder...

For example

c:
proyect1 _svn images _svn banner _svn buttons _svn

Then I run something like

rm-recurse c:\proyect1 _svn

And I should get:

c:
proyect1 images banner buttons

The ideal thing would be a tiny stand-alone EXE or something like that.

-- Thanks Grant, as soon as I posted the question I saw SVN documentation about the SVN export command, but I also want to delete the _vti_* folders stuff Visual Studio creates, so I'll also explore the for solution.

Windows Solutions


Solution 1 - Windows

Similar to BlackTigerX's "for", I was going to suggest

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"

Solution 2 - Windows

Time to learn some PowerShell ;o)

Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse

The first part finds each _svn folder recursively. Force is used to find hidden folders. Second part is used to delete these folders and their contents. Remove commandlet comes with a handy "whatif" parameter which allows to preview what will be done.

PowerShell is available for Windows XP and Windows Vista. It is present on Windows 7 and on Windows Server 2008 R2 by default.

It's a MS product, it's free, and it rocks!

Solution 3 - Windows

For inclusion/invocation from within a BATCH file use (say for removing Debug and Release folder):

for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"

double % are required within a batch file to work as escape chars. Else it reports error of syntax.

Thanks.

Solution 4 - Windows

for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"

http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html

Solution 5 - Windows

In Windows? If you are using tortoiseSVN you can use the export command to export a copy of the project without the .svn/_svn folders.

Solution 6 - Windows

import os
import shutil

curdir = os.path.abspath(os.path.dirname(__file__))

def removedir(dirname, name = ".svn"):
    if os.path.isdir(dirname):
        for file in os.listdir(dirname):
            if os.path.isdir(os.path.join(dirname, file)) and file == name:
                thedir = os.path.join(dirname, name)
                shutil.rmtree(thedir)
                print ".",
            else:
                removedir(os.path.join(dirname, file))

I think you can try this Python script, which will work under any OS if you've got Python installed.

Solution 7 - Windows

Here... with FreeCommander or TotalCommander

http://www.broobles.com/blog/posts/36

socendani

Solution 8 - Windows

Another option from SVN Forum: use XCopy with a file that contains the list of files/directories to be excluded (.svn or _svn in this case)

XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionopensasView Question on Stackoverflow
Solution 1 - WindowsJMDView Answer on Stackoverflow
Solution 2 - WindowsCédric RupView Answer on Stackoverflow
Solution 3 - WindowsRajesh Gautam PhDView Answer on Stackoverflow
Solution 4 - WindowsBlackTigerXView Answer on Stackoverflow
Solution 5 - WindowsGrantView Answer on Stackoverflow
Solution 6 - WindowsZhu TaoView Answer on Stackoverflow
Solution 7 - WindowsDaniView Answer on Stackoverflow
Solution 8 - WindowsTeoristView Answer on Stackoverflow