ferramenta de linha de comando para a pasta de exclusão com um nome especificado de forma recursiva no Windows?
-
22-08-2019 - |
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
.
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.
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"
http: //ebersys.blogspot. com / 2008/07 / recursivamente-delete-svn-pastas de fácil way.html
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