![]() |
Синхронизация имен папок в разных директориях при помощи батника.
Здравствуйте.
В нескольких директориях расположены одинаковые папки с файлами. Неодинаковых нет, но еще могут быть разные файлы в корне. Начало
DIR1
DIR2
DIR3
Как, вручную добавив в одной из директорий к названиям нескольких папок определенный префикс (в примере это "0-"),.. Изменение вручную
DIR1
...потом при помощи батника сделать те же изменения в именах папок в остальных директориях? После батника
DIR2
DIR3
Директории в разных местах и на разную глубину, но одни и те же - их можно прописать через set=. Префикс тоже можно прописать в переменную, по нему определить вероятное изменение, разложить названия папок на префикс и имя, и использовать их для переименования папок в других директориях. Сложности: - реализация возможна только стандартным батником. - префикс может присваиваться не в одной директории, как в примере в DIR1, а в разных директориях. - в идеале, нужна такая же обратная функция - синхронизация имен папок после удаления префикса. |
NuclearBox, быть может, Вы расскажете — зачем всё это нужно? Для решения какой задачи Вы выбрали такой способ решения?
|
Iska, Директории и папки являются частью программного обеспечения с большим количеством файлов. В них находятся как программные настройки, так и результаты выполнения программы, доступные разным сотрудникам.
Для управления этими папками удобно делать соответствующие отметки в пределах только одной директории, и запустив батник, вносить те же изменения в одноименные папки. Используя эти же метки-префиксы, можно формировать для программы новые задачи, ставить выполняемые задачи в стоп, или полностью удалять их. Задача является развитием вот этой темы http://forum.oszone.net/post-2872146.html Но только теперь нельзя трогать реестр (reg) для организации контекстного меню, и задач стало больше - не только удаление похожих папок. Оптимальное решение вижу через префиксы-метки. |
NuclearBox, тогда уж лучше расширения менять для каталогов, и не трогать имена: пакетные файлы не лучший выбор для работы со строками.
|
NuclearBox, подробнее об именах F1, F2, F3... Что в них, какие символы, есть ли там пробелы?
Возможно ли, например 0-0-F1, или префикс может быть присвоен только один раз Идея Iska, кстати, мне тоже нравится больше, чем префиксы, например, F1.OLD, но это не сильно принципиально. Цитата:
|
Iska, так и задумано - префиксы будут применяться только к папкам (в примере F1, F2, F3), не к файлам. Если речь идет о варианте типа F1.OLD - он в принципе приемлем. Может быть "постфикс" вместо префикса. Но имена папок могут содержать свои точки в имени, и сортировка папок по началу имени удобнее, чем по окончанию имени.
megaloman, имена папок ограничены только общими правилами имен - нет кавычек, слэшей и прочего, что нельзя использовать в имени папки вручную. Могут быть пробелы, тильды, точки, кириллица, латиница, цифры... Префикс можно присваивать много раз. Главное, чтобы папки в разных директориях (в примере DIR1, DIR2, DIR3) имели одинаковые имена в каждой из них. По поводу варианта F1.OLD - префикс выполняет роль некой метки. Метка позволит определить оригинальные имена тех папок, с которыми во всех директориях DIR (а их больше трех) необходимо выполнить какие-либо действия. Фактически, метка работает как маска для дальнейшей обработки. Например, удаления по маске, изменения по маске, включения в обработку по маске. Цитата:
Одна может находиться на C:\DIR1 , другая на C:\AAA\DIR2 , третья на C:\BBB\DIR3 |
"...Напрасно ждал Наполеон..."
|
Думал, задача будет не такой сложной.
Переименовав одни папки, с помощью батника переименовать одноименные им папки в заранее известных директориях, в пределах файловой системы одного компьютера. Iska, megaloman, пожалуйста, напишите, что решения нет, если его нет. А то я подзастрял в "режиме ожидания". В любом случае, ветеранам спасибо. Выручали не раз. |
NuclearBox, решение есть. Только выглядеть оно должно не так, как Вы описываете.
Я вижу это так: 1. Есть строка-префикс. 2. Есть путь к каталогу-источнику: Цитата:
Цитата:
Цитата:
Скрытый текст
Код:
Option Explicit и обратно: Скрытый текст
Код:
Option Explicit На WSH. Если будете исполнять не под cscript.exe, а под умолчальным wscript.exe — закомментируйте WScript.StdOut.Write/WScript.StdOut.WriteLine'ы. |
CMD - Добавление префикса
Код:
@Echo Off CMD - Удаление префикса
Код:
@Echo Off |
Iska, megaloman, простите за отсутствие, уже не надеялся...
Огромное вам спасибо! Полный восторг! Тему закрываю - решена! |
Время: 23:35. |
Время: 23:35.
© OSzone.net 2001-