ferramenta de linha de comando para a pasta de exclusão com um nome especificado de forma recursiva no Windows?

StackOverflow https://stackoverflow.com/questions/521382

Pergunta

Eu quero excluir todos os "_svn" em cada pasta e subpasta ...

Por exemplo

c:\
  proyect1
   _svn
   images
     _svn
     banner
       _svn
     buttons
       _svn

Então eu executar algo parecido

rm-recurse c:\proyect1 _svn

E eu deveria ter:

c:\
  proyect1
   images
     banner
     buttons

O ideal seria uma pequena EXE autônomo ou algo parecido.

- Graças Grant, assim que eu postei a pergunta que eu serra SVN documentação sobre o SVN comando de exportação, mas também quer deletar o _vti_ * pastas encher Visual Studio cria, então eu também vai explorar a solução for.

Foi útil?

Solução

Semelhante ao BlackTigerX de "para", eu ia sugerir

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

Outras dicas

O tempo para aprender algumas PowerShell ; o)

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

A primeira parte encontra cada pasta _svn de forma recursiva. Força é usado para encontrar arquivos ocultos. Segunda parte é usada para excluir essas pastas e seus conteúdos. Remove commandlet vem com um prático "whatif" parâmetro que permite visualizar o que será feito.

PowerShell está disponível para Windows XP e Windows Vista. Ela está presente no Windows 7 e no Windows Server 2008 R2 por padrão.

É um produto MS, é grátis, e rocks!

Para inclusão / invocação de dentro de um uso arquivo de lote (dizer para a remoção de pasta Debug e Release):

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

% dupla são necessários dentro de um arquivo de lote para o trabalho como caracteres de escape. Então ele relata erro de sintaxe.

Graças.

No Windows? Se você estiver usando tortoiseSVN você pode usar o comando de exportação para exportar uma cópia do projeto sem a .svn / _svn pastas.

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))

Eu acho que você pode tentar este script Python, que irá funcionar em qualquer sistema operacional, se você tem o Python instalado.

Outra opção de SVN Fórum : uso XCopy com um arquivo que contém a lista de arquivos / diretórios a serem excluídos (.svn ou _svn neste caso)

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

Aqui ... com FreeCommander ou TotalCommander

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

socendani

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top