2010-03-28 12 views
25

Um löschen Sie alle „.svn“ Dateien/Ordner/Unterordner in ‚myfolder‘ Ich benutze diese einfache Linie in einer Batch-Datei zu löschen:Windows-Batch-Datei .svn Dateien und Ordner

FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X") 

Dies funktioniert , aber wenn keine ".svn" Dateien/Ordner vorhanden sind, zeigt die Batchdatei eine Warnung an: "Das System kann die angegebene Datei nicht finden." Diese Warnung ist sehr laut, also habe ich mich gefragt, wie man es verstehen, dass, wenn es keine ".svn" Dateien/Ordner findet, er den RD-Befehl überspringen muss.

Normalerweise Wildcards würde genügen, aber in diesem Fall, dass ich weiß nicht, wie sie benutzen, weil ich nicht will Dateien/Ordner mit .svn Erweiterung löschen, aber ich mag, dass die löschen Dateien/Ordner genau „.svn“ genannt, also wenn ich dies tun:

FOR /R myfolder %%X IN (*.svn) DO (RD /S /Q "%%X") 

nicht löschen würden Dateien/Ordner mit dem Namen genau „.svn“ mehr. Ich habe auch versucht dies:

FOR /R myfolder %%X IN (.sv*) DO (RD /S /Q "%%X") 

aber es funktioniert auch nicht, löscht er nichts.

+6

sind Sie der SVN-Exportfunktion bewusst? http://svnbook.red-bean.com/en/1.0/re10.html "exportiert einen sauberen Verzeichnisbaum aus der Arbeitskopie" – nickf

+0

@nickf: Danke, dass du es mir erzählt hast, aber ich musste eine andere Aufgabe erledigen, wo ich sie brauche um die .svn Dateien/Ordner zu löschen. –

+0

Nur ein Hinweis, dass bei neuen Versionen von SubVersion (seit 1.7) der .svn-Metadatenordner nur auf der Stammebene des Checkouts und nicht in jedem Verzeichnis vorhanden ist. – macetw

Antwort

41

Sie können versuchen,

FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X" 2>nul) 
+0

Funktioniert gut! Vielen Dank! –

+14

Dies funktioniert nur in Batch-Dateien. Wenn Sie es direkt in einem Konsolenfenster verwenden, sollten Sie die zweiten% fallen lassen. So sollte es dann sein: FOR/R myfolder% X IN (.svn) DO (RD/S/Q "% X" 2> Null) –

1

etwas wie das mit Fund:

rm -rf `find . -name ".svn" -type d` 

Edit:

Ich weiß, das für Linux ist (ich lese bash statt Charge). Ich verlasse hier es Linux-Anwender zu helfen, die hier zufällig Ende-up würde :)

+2

er ... * Windows * Batch-Datei? – nickf

+0

sry ich lese bash ^^. Was auch immer, das wird Linux-Benutzern helfen: p –

+0

@nickf: Was ist los mit "Windows Batch-Datei"? Ich meine eine Datei mit der Erweiterung .BAT. –

4
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *svn') do (rd /s /q "%%i") 
+0

cmd prompt: für/f "Token = * delims ="% i in ('dir/s/b/a: d * svn') tue (rd/s/q "% i") – PeanutPower

0

Bizarre Bemerkung am Rande: wenn ich

FOR /R . %%X IN (*.svn) DO (echo "%%X")

statt


FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")

nicht nur listet es alle Verzeichnisse auf, die mit .svn enden, und listet ALLE IHREN INHALT auf. Dies ist ein Fehler in der For-Befehl, gab es mir eine Erweiterung, wo ich keine Wildcard gab. Sehr eigenartig.

Ken

0

Wenn Sie alle Unterordner namens löschen möchten .svn in Windows dann Batch-Datei mit folgendem Inhalt erstellen:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i" 
) 

speichern sie in einer Datei del_All_Dot_SVN_Folders.cmd . Starte es. Du bist fertig.

Dank http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/

Erinnern Sie sich den obigen Code nur der Code in den Link * svn so ist es besser , um die .svn müssen nicht versehentlich unerwünschte Wirkung haben .svn hat während hat.

-1

Hier ist mein Favorit, seine einfache und kompakte:

find ./ -name ".svn" | xargs rm -Rf

Fissh

-2

alle SVN-Dateien auf Windows

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

.svn wird der Name Ordner löschen

1

Eigentlich ist diese Antwort von Je sper Rønn-Jensen unter http://justaddwater.dk/2011/03/01/easy-delete-all-svn-subfolders-in-windows-explorer/

Ich dachte, es wäre so viel einfacher, ich würde teilen. Ich konvertiere mehrere Projekte von .SVN zu .GIT, also war das großartig. Es fügt dem Explorer ein Menüelement hinzu, damit Sie die Ordner entfernen können. Erstellen Sie eine REG-Datei, und importieren Sie sie.

enter image description here

Windows Registry Editor Version 5.00 
; 
; Running this file will give you an extra context menu item in Windows Explorer 
; "Delete SVN folders" 
; 
; For the selected folder, it will remove all subfolders named ".svn" and their content 
; Tip from http://www.iamatechie.com/remove-all-svn-folders-in-windows-xp-vista/ 
; 
; Enrichened with comments by Jesper Rønn-Jensen (http://justaddwater.dk/) 
; 
; 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] 
@="Delete SVN Folders" 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] 
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 
Verwandte Themen