Рекурсивно создавать папки в определенных каталогах - PullRequest
1 голос
/ 29 ноября 2010

Во время недавнего цикла резервного копирования / восстановления я понял, что мне удалось пропустить каталоги 'tmp' из каталогов '.svn', и из-за этого я не могу обновить свои рабочие копии. Проблема исчезнет, ​​если я вручную создам новый пустой каталог 'tmp', поэтому я ищу способ рекурсивного просмотра каждой папки, поиска '.svn' и создания внутри них папки 'tmp'.

Поскольку я не хочу испортить существующие папки, я подумал, что прошу помощи, прежде чем сделать что-то глупое:)

Комментарии / предложения будут оценены, спасибо!

PS: Это на машине с Windows, поэтому, к сожалению, Bash и другие утилиты unix отсутствуют.

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Сценарий выше не работает на моем компьютере с Windows 7.«dir /b /s .svn» не получает все каталоги, я получаю ошибку « Файл не найден ».

Я изменил сценарий, добавив / ad, кроме того, чтобы выбрать только каталоги иэто работает!Вот srcipt, который работает для меня.

@echo off
for /f "usebackq delims=" %%I in (`dir /ad /b /s .svn`) do (
echo Fixing %%I...
mkdir "%%I\tmp"
)
1 голос
/ 29 ноября 2010

Зависит от того, сколько их.

Перечислите каталоги с помощью

 dir/B/S .svn >dirs.bat

Отредактируйте dirs.bat в своем редакторе.Добавьте md в начале каждой строки (поскольку каждая строка начинается с чего-то вроде C: вы можете использовать довольно тупой редактор - включая блокнот - чтобы изменить C: на md C:).Добавьте / tmp в конец каждой строки (замените .svn на .svn\tmp).Сохранить.Запустите BAT-файл

Работа выполнена.

0 голосов
/ 29 ноября 2010

Вот как автоматизировать весь процесс. Поместите в файл следующее: fixtmp.cmd:

@echo off
for /f "usebackq delims=" %%I in (`dir /b /s .svn`) do (
echo Fixing %%I...
mkdir "%%I\tmp"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...