Kommandozeilen-Tool-Ordner mit einem bestimmten Namen rekursiv in Windows löschen?
-
22-08-2019 - |
Frage
Ich will jeden "_svn" in jedem Ordner und Unterordner löschen ...
Zum Beispiel
c:\ proyect1 _svn images _svn banner _svn buttons _svn
Dann laufe ich so etwas wie
rm-recurse c:\proyect1 _svn
Und ich sollte bekommen:
c:\ proyect1 images banner buttons
Die ideale Sache würde eine winzige Stand-alone-EXE oder so ähnlich sein.
-
Dank Grant, sobald ich die Frage gepostet Ich sah SVN Dokumentation zum SVN Exportbefehl, aber ich möchte auch die _vti_ * Ordner stopfen Visual Studio erstellt löschen, also werde ich auch die for
Lösung erkunden.
Lösung
Ähnlich wie BlackTigerX der „für“ Ich wollte vorschlagen
for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"
Andere Tipps
Zeit einige Powershell zu lernen; o)
Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse
Der erste Teil findet jeden _svn Ordner rekursiv. Kraft wird verwendet, versteckte Ordner zu finden. Der zweite Teil wird verwendet, um diese Ordner und deren Inhalte zu löschen. Entfernen Commandlet kommt mit einem praktischen „whatif“ Parameter, was in der Vorschau ermöglicht wird getan werden.
Powershell ist für Windows XP und Windows Vista verfügbar. Es ist auf Windows 7 und Windows Server 2008 R2 standardmäßig aktiviert.
Es ist ein MS-Produkt, es ist kostenlos, und es rockt!
Für die Aufnahme / Aufruf aus einer Batch-Datei verwenden (etwa für Debug Entfernen und Release-Ordner):
for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"
Doppel %
innerhalb einer Batch-Datei erforderlich als Flucht Zeichen zu arbeiten. Else es meldet Fehler der Syntax.
Danke.
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"
http: //ebersys.blogspot. com / 2008/07 / rekursiv-delete-svn-Ordner-easy-way.html
In Windows? Wenn Sie TortoiseSVN verwenden, können Sie den Exportbefehl verwenden, um eine Kopie des Projekts ohne die .svn / _svn Ordner zu exportieren.
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))
ich glaube, Sie diesen Python-Skript versuchen können, die unter jedem Betriebssystem funktionieren, wenn Sie haben Python installiert ist.
Eine weitere Option von SVN Forum: verwenden XCopy mit einer Datei, die die Liste der Dateien / Verzeichnisse enthält ausgeschlossen (.svn oder _svn in diesem Fall) wird
XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y