Инструмент командной строки для рекурсивного удаления папки с указанным именем в Windows?
Я хочу удалить все "_svn" в каждой папке и подпапке...
c: proyect1 _svn images _svn banner _svn buttons _svn
затем я запускаю что-то вроде
rm-recurse c:proyect1 _svn
и я должен сделать:
c: proyect1 images banner buttons
идеальной вещью был бы крошечный автономный EXE или что-то в этом роде.
--
Спасибо Грант, как только я разместил вопрос я видел SVN документация о команде экспорта SVN, но я также хочу удалить визуальный материал _vti_ * folders Студия создает, так что я также буду исследовать for
решение.
8 ответов:
подобно Blacktigerx's "for", я собирался предложить
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, это бесплатно, и он качается!
для включения / вызова из пакетного файла используйте (скажем, для удаления папки отладки и выпуска):
for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"
двойной
%
требуются в пакетном файле для работы в качестве 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, который будет работать под любой ОС, если у вас установлен Python.
еще один вариант от форум SVN: используйте 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