![]() |
Батник с сложной сортировкой
Здравствуйте. Возможно ли, при помощи батника реализовать решение следующей задачи:
Есть две папки, условно обзовем их 1 и 2. В папке 1 находятся файлы в формате .jpg, рассортированные по подпапкам с разными именами. В папке 2, в общую кучу свалены .txt. У .jpg и .txt файлов одинаковые названия, т.е. если в папке 1 есть Иванов.jpg, то в папке 2 есть Иванов.txt и т.д. Имена всегда уникальные. Необходимо что бы батник сравнивал названия .jpg и .txt, и при нахождении совпадения копировал .txt в папку в которой находится одноименный .jpg. Если в папке с .jpg уже есть .txt, то необходимо что бы батник сравнил даты создания .txt файла находящегося в папке с .jpg, с тем, который находится в папке 2. И если .txt в папке с .jpg старее, чем в папке 2, то его необходимо заменить более новым .txt из папки 2. Соответственно, если даты у .txt файлов одинаковые, то делать ничего не требуется. |
Цитата:
На PowerShell: Скрытый текст
Код:
$sSourceFolder = 'C:\Мои проекты\0267\02\Source' Без проверок. |
Если в системе формат даты дд.мм.гггг, то
Код:
@Echo Off |
Iska,
Цитата:
|
Тогда поменяйте в коде упоминания свойства .LastWriteTime на .CreationTime.
|
megaloman, Iska,
Благодарочка, все работает, спасибо за помощь. |
megaloman, Iska,
В процессе эксплуатации столкнулся с двумя проблемами. 1. В виду специфики работы программы, иногда путь выглядит не так "С:\Иванов\Иванов", а вот так "С:\АП ЦИФРА и НАЗВАНИЕ\Иванов", при чем в папке, "АП ЦИФРА и НАЗВАНИЕ", помимо папки "Иванов" может быть еще и папки "Петров" и "Сидоров". 2. Иногда одноименного .jpg в папке нет, хотя изначально я был уверен в обратном. Т.е. условно есть путь "С:\Иванов\Иванов" или "С:\АП ЦИФРА и НАЗВАНИЕ\Иванов", но так как .jpg не одноименный с .txt, то и .txt не копируется. Можно ли как то решить эти проблемы таким образом, что бы .txt копировался в одноименную КОНЕЧНУЮ папку, без учета того, одноименный там .jpg или нет. И в вне зависимости от того как выглядит путь, так "С:\Иванов\Иванов" или так "С:\АП ЦИФРА и НАЗВАНИЕ\Иванов", .txt копировался по пути "С:\Иванов\Иванов", в первом случае, и по пути "С:\АП ЦИФРА и НАЗВАНИЕ\Иванов", во втором. megaloman, Iska, Т.е. Можно ли как то сделать так, что бы батник игнорировал то, как называется промежуточная папка "С:\ |
VRNComandante, тихо шифером шурша крыша едет неспеша :sorry:
В изначальной постановке искали соответствие между файл.jpg и файл.txt. Имя папки никак не декларировалось. Поэтому вопросы: 1. Правильно ли я понимаю, что если есть файл с путём: D:\tralala\kuku\Иванов\Иванов\Иванов.jpg, то мы ищем для него Иванов.txt, так как имя папки совпадает с именем файла. А для файла D:\tralala\kuku\Иванов\Иванов\Цубербиллер.jpg, то для него ничего не делаем? 2. Или нам надо ориентироваться только на имя папки D:\tralala\kuku\Иванов\Иванов и копировать туда Иванов.txt вне зависимости от наличия Иванов.jpg ? 3. В папке с файлом D:\tralalalalalala\Иванов\Иванов.jpg не должно быть иных подпапок? |
megaloman,
Цитата:
Цитата:
Но бывает так, что что путь такой: "D:\tralalalalalala\АП1Тратата" и в папке "АП1Тратата", находится несколько папок, например "Иванов" и "Петров", и в них соответственно, тоже надо скопировать .txt. Это возможно реализовать? |
Пробуйте
Код:
@Echo Off Цитата:
|
megaloman,
Все работает как надо, огромное спасибо. |
Время: 23:22. |
Время: 23:22.
© OSzone.net 2001-