Ответ 1
Подобно BlackTigerX "для", я собирался предложить
for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"
Я хочу удалить каждый "_svn" в каждой папке и вложенной папке...
Например
c:\ proyect1 _svn images _svn banner _svn buttons _svn
Затем я запускаю что-то вроде
rm-recurse c:\proyect1 _svn
И я должен получить:
c:\ proyect1 images banner buttons
Идеальной вещью будет крошечный автономный EXE или что-то в этом роде.
-
Спасибо Grant, как только я разместил вопрос, я увидел SVN документацию о команде экспорта SVN, но также хочу удалить файлы _vti_ * Visual Studio создает, поэтому я также рассмотрю решение for
.
Подобно BlackTigerX "для", я собирался предложить
for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"
Время для изучения PowerShell; o)
Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse
Первая часть находит каждую папку _svn рекурсивно. Сила используется для поиска скрытых папок. Вторая часть используется для удаления этих папок и их содержимого. Remove commandlet поставляется с удобным параметром "whatif", который позволяет предварительно просмотреть, что будет сделано.
PowerShell доступен для Windows XP и Windows Vista. Он присутствует в Windows 7 и Windows Server 2008 R2 по умолчанию.
Это продукт MS, он бесплатный, и он потрясает!
Для включения/вызова из файла BATCH (скажем, для удаления папки Debug и Release):
for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"
double %
требуется в пакетном файле для работы в качестве escape-символов. Кроме того, он сообщает об ошибке синтаксиса.
Спасибо.
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
В Windows? Если вы используете tortoiseSVN, вы можете использовать команду export для экспорта копии проекта без папок .svn/_svn.
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))
Я думаю, вы можете попробовать этот Python script, который будет работать под любой ОС, если у вас установлен Python.
Еще один вариант из SVN Forum: используйте XCopy с файлом, который содержит список файлов/каталогов, которые будут исключены (.svn или _svn в этот случай)
XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y
Здесь... с FreeCommander или TotalCommander
http://www.broobles.com/blog/posts/36
socendani