// Перенесено из темы: https://safezone.cc/threads/cmd-poisk-i-peremeschenie-fajlov-po-maske.31211/
Привет, ребята и девчата!
Я извиняюсь, что влез, но не люблю плодить лишние темы, а у меня нужда сходная с той, что просил ТС.
Готов материально вознаградить за потраченное на меня время!
Спасибо! Извините, если помешал или нарушил что-то! Хотел как лучше! Я без злых намерений )
Привет, ребята и девчата!
Я извиняюсь, что влез, но не люблю плодить лишние темы, а у меня нужда сходная с той, что просил ТС.
задача:
Выбрать папки с определенным названием из многоуровневой структуры папок диска
и положить эти папки в виде символических ссылок в определенную папку назначения, сохранив структуру папок верхнего уровня.
С "работой" работает человек, который ведет всё продряд. В том числе и складывает себе данные по "Водитель" в соответствующую папочку. Нужно автоматизировать передачу данных о "водитель" для другого человека, который занимается обработкой именно этих данных.
За счет символических ссылок упрощается задача синхронизации: все наработки второго человека автоматически будут лежать и у первого. То есть первый кладет сырцы по "водитель" и запускает этот скрипт. Скрипт добавляет эти сырцы в назначение. Далее, назначение через облако синхронизируется со вторым человеком путем двусторонней синхронизации. И по результату, за счет двусторонней синхронизации и жестких ссылок - первый человек получил все изменения, произведенные вторым человеком.
Можно обойтись без проверки наличия существующих ссылок, если это не повредит уже существующим файлам и папкам. Я не уверен, так как не имею опыта работы с символьными ссылками! По сути, папок в источнике несколько десятков, ну пусть даже сотен вместе со вложенными. Скрипт будет работать пару секунд, так что проверка не принципиальна! Но можно и сделать!
Извините, за некоторую сумбурность описания!
Выбрать папки с определенным названием из многоуровневой структуры папок диска
и положить эти папки в виде символических ссылок в определенную папку назначения, сохранив структуру папок верхнего уровня.
Например, принцип формирования папок следующий:
Диск:\ПУТЬ\Работа\Заказчик\Дата\
Я в настройках скрипта задаю откуда начинать (Диск:\ПУТЬ\), какое название искать (например "Водитель") и папку назначения, куда складывать.
И в результате обработки этой структуры
D:\Работа\Заказчик1\Дата1\Сервис\...
D:\Работа\Заказчик1\Дата1\Операции\...
D:\Работа\Заказчик1\Дата1\Водитель\...
мы должны
получить следующее в папке назначения:
D:\Экспедиция\Заказчик1\Дата1\(содержимое папки "Водитель")
По прошествии определенного времени у нас в назначении получится примерно следующее:
D:\Экспедиция\Заказчик1\Дата1\(содержимое папки "Водитель" из источника "Заказчик1\Дата1\")
D:\Экспедиция\Заказчик1\Дата2\(содержимое папки "Водитель" из источника "Заказчик1\Дата2\")
D:\Экспедиция\Заказчик1\Дата3\(содержимое папки "Водитель" из источника "Заказчик1\Дата3\")
D:\Экспедиция\Заказчик2\Дата1\(содержимое папки "Водитель" из источника "Заказчик2\Дата1\")
D:\Экспедиция\Заказчик2\Дата2\(содержимое папки "Водитель" из источника "Заказчик2\Дата2\")
То есть выборка содержимого определенного каталога в месте назначения с сохранением относительного пути. Только в назначении предпоследняя папка пути до "Водитель" (в примере это "Дата1") должна стать символьной ссылкой на папку "Дата1\Водитель"
Вот это принцип "Заказчик1\Дата" - он неизменный. Разве что могут добавится промежуточные звенья. И в назначении нужно сохранить весь путь от "Заказчика" до "Дата", создать в назначении этот путь, а в папку "Дата" положить все файлы из подпапки "Водитель". Причем положить символическими ссылками для экономии места и удобства синхронизации.
Диск:\ПУТЬ\Работа\Заказчик\Дата\
Я в настройках скрипта задаю откуда начинать (Диск:\ПУТЬ\), какое название искать (например "Водитель") и папку назначения, куда складывать.
И в результате обработки этой структуры
D:\Работа\Заказчик1\Дата1\Сервис\...
D:\Работа\Заказчик1\Дата1\Операции\...
D:\Работа\Заказчик1\Дата1\Водитель\...
мы должны
получить следующее в папке назначения:
D:\Экспедиция\Заказчик1\Дата1\(содержимое папки "Водитель")
По прошествии определенного времени у нас в назначении получится примерно следующее:
D:\Экспедиция\Заказчик1\Дата1\(содержимое папки "Водитель" из источника "Заказчик1\Дата1\")
D:\Экспедиция\Заказчик1\Дата2\(содержимое папки "Водитель" из источника "Заказчик1\Дата2\")
D:\Экспедиция\Заказчик1\Дата3\(содержимое папки "Водитель" из источника "Заказчик1\Дата3\")
D:\Экспедиция\Заказчик2\Дата1\(содержимое папки "Водитель" из источника "Заказчик2\Дата1\")
D:\Экспедиция\Заказчик2\Дата2\(содержимое папки "Водитель" из источника "Заказчик2\Дата2\")
То есть выборка содержимого определенного каталога в месте назначения с сохранением относительного пути. Только в назначении предпоследняя папка пути до "Водитель" (в примере это "Дата1") должна стать символьной ссылкой на папку "Дата1\Водитель"
Вот это принцип "Заказчик1\Дата" - он неизменный. Разве что могут добавится промежуточные звенья. И в назначении нужно сохранить весь путь от "Заказчика" до "Дата", создать в назначении этот путь, а в папку "Дата" положить все файлы из подпапки "Водитель". Причем положить символическими ссылками для экономии места и удобства синхронизации.
За счет символических ссылок упрощается задача синхронизации: все наработки второго человека автоматически будут лежать и у первого. То есть первый кладет сырцы по "водитель" и запускает этот скрипт. Скрипт добавляет эти сырцы в назначение. Далее, назначение через облако синхронизируется со вторым человеком путем двусторонней синхронизации. И по результату, за счет двусторонней синхронизации и жестких ссылок - первый человек получил все изменения, произведенные вторым человеком.
Можно обойтись без проверки наличия существующих ссылок, если это не повредит уже существующим файлам и папкам. Я не уверен, так как не имею опыта работы с символьными ссылками! По сути, папок в источнике несколько десятков, ну пусть даже сотен вместе со вложенными. Скрипт будет работать пару секунд, так что проверка не принципиальна! Но можно и сделать!
Извините, за некоторую сумбурность описания!
Спасибо! Извините, если помешал или нарушил что-то! Хотел как лучше! Я без злых намерений )
Последнее редактирование модератором: