Как скопировать файл под разными именами из списка имен?
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Как скопировать файл под разными именами из списка имен?
Имеется файл с определенным содержимым. Нужно размножить его под разными именами на основании имеющегося списка имен. Как это быстро сделать?
Чтобы была понятнее задача, напишу подробнее.
Имеется коллекция фотографий в формате RAW (если уж совсем точно - CR2 от Canon'а). Фотоаппарат не имеет GPS-модуля. А я хочу к фотографиям добавить GPS-координаты. Я знаю, что если я создам файлы в формате XMP с координатами и дам им те же имена, что и CR2-файлы, то RAW-конвертер автоматически подхватит координаты из одноименных XMP-файлов.
Эталонный XMP-файл я создал. Теперь задача: размножить этот файл по папкам с фотографиями. Как получить список CR2-файлов в каждой папке с помощью TC, я знаю. А вот как на основании этого списка файлов размножить свой XMP-файл, я так и не понял.
Если это невозможно сделать через TC, то как можно сделать другим способом?
[mod="Avada"]Перенесено из "Общих вопросов" в "Автоматизацию".[/mod]
Чтобы была понятнее задача, напишу подробнее.
Имеется коллекция фотографий в формате RAW (если уж совсем точно - CR2 от Canon'а). Фотоаппарат не имеет GPS-модуля. А я хочу к фотографиям добавить GPS-координаты. Я знаю, что если я создам файлы в формате XMP с координатами и дам им те же имена, что и CR2-файлы, то RAW-конвертер автоматически подхватит координаты из одноименных XMP-файлов.
Эталонный XMP-файл я создал. Теперь задача: размножить этот файл по папкам с фотографиями. Как получить список CR2-файлов в каждой папке с помощью TC, я знаю. А вот как на основании этого списка файлов размножить свой XMP-файл, я так и не понял.
Если это невозможно сделать через TC, то как можно сделать другим способом?
[mod="Avada"]Перенесено из "Общих вопросов" в "Автоматизацию".[/mod]
Если всё сводится к задаче
, то что мешает использовать опцию "Копировать во все выделенные папки/ссылки целевой панели"?NAA писал(а):размножить этот файл по папкам с фотографиями
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Тогда это точно не в Общие вопросы.
Речь идёт о базовых именах файлов?
Описывать задачу нужно проще (без лишней шелухи). Что-то вроде: создать в выбранных каталогах копии XMP-файла рядом с CR2-файлами, придав им то же базовое имя.
Теперь я правильно понял?
Речь идёт о базовых именах файлов?
Описывать задачу нужно проще (без лишней шелухи). Что-то вроде: создать в выбранных каталогах копии XMP-файла рядом с CR2-файлами, придав им то же базовое имя.
Теперь я правильно понял?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Совершенно верно!Flasher писал(а):создать в выбранных каталогах копии XMP-файла рядом с CR2-файлами, придав им то же базовое имя.
Можно задачу упростить: не в выбранных каталогах, а в текущем каталоге.
И еще уточнение: желательно уметь работать с выделенным подмножеством CR2-файлов в данном каталоге
Лень уже упрощать. VBS:NAA писал(а):Можно задачу упростить
Код: Выделить всё
'===========================================================
' Cоздать в выбранных каталогах копии файла с базовым именем
' содержащихся внутри файлов указанного расширения
' Параметры: %WL "<Путь к файлу>" <искомое расширение>
' Пример: %WL "C:\My Folder\File.xmp" cr2
'===========================================================
With WScript.Arguments
If .Count = 0 Then WScript.Quit
List = .Item(0) : File = .Item(1) : Ex = .Item(2)
End With : Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(File) Then
Title = " Размножение файла в выбранных каталогах"
MsgBox "Файла " & File & " не существует!" & vbLf &_
"Укажите верный путь в параметрах!", 48, Title : WScript.Quit
End If : Ext = FSO.GetExtensionName(File)
With FSO.OpenTextFile(List,,,-1)
Do Until .AtEndOfStream
Fd = Trim(.ReadLine)
If Fd <> "" And FSO.FolderExists(Fd) Then
Set Items = ShA.NameSpace(Fd).Items
Items.Filter 192, "*." & Ex
For Each i in Items
FSO.CopyFile File, Fd & FSO.GetBaseName(i) & "." & Ext, 0
Next
End if
Loop : .Close
End WithАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Что-то у меня не работает. Наверно, что-то не так делаю.
Я сделал так.
Создал файл CopyFiles.vbs. Поместил в него содержимое скрипта.
В Панели инструментов TC добавил кнопочку, в строке «Команда» поместил «d:\!Test\!!!\CopyFiles.vbs»; в строке «Параметры» поместил «? %WL "%P%N" cr2».
Ставлю курсор на исходный XMP-файл, нажимаю созданную кнопочку.
Что-то происходит, но в текущем каталоге ничего не появляется.
Я сделал так.
Создал файл CopyFiles.vbs. Поместил в него содержимое скрипта.
В Панели инструментов TC добавил кнопочку, в строке «Команда» поместил «d:\!Test\!!!\CopyFiles.vbs»; в строке «Параметры» поместил «? %WL "%P%N" cr2».
Ставлю курсор на исходный XMP-файл, нажимаю созданную кнопочку.
Что-то происходит, но в текущем каталоге ничего не появляется.
Зачем тут знак вопроса? %P%N в кавычки не берётся и будет иметь место только в случае расположения выбранных папок в одном каталоге с файлом, поэтому путь к нему лучше указывать прямой. Смысл файл выбирать в панели?NAA писал(а):? %WL "%P%N" cr2
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Чтобы проверить, что команда формируется правильная. Поскольку не работало, я его и вставил.Flasher писал(а):Зачем тут знак вопроса?
Без кавычек тоже не работало.Flasher писал(а):%P%N в кавычки не берётся
Чтобы можно было использовать XMP-файл с произвольным именем.Flasher писал(а):Смысл его выбирать в панели?
Но и с постоянным именем тоже не работает.
Т. е. с такими параметрами: «%WL 1.xmp cr2» тоже не сработало.
И что, правильная команда вышла?NAA писал(а):Чтобы проверить, что команда формируется правильная.
И я пояснил почему.NAA писал(а):Без кавычек тоже не работало.
Тогда можно в неактивной панели оставлять курсор на этом файле и использовать параметр %T%M.NAA писал(а):Чтобы можно было использовать XMP-файл с произвольным именем.
А где тут, собственно, прямой путь? Я вижу только имя. Для чего пример в шапке приводится?NAA писал(а):Т. е. с такими параметрами: «%WL 1.xmp cr2» тоже не сработало.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
А вот это мне в голову не пришло! Я просто был в текущем каталоге.Flasher писал(а):Хм. А каталоги-то выделены или нет?
Если каталог выделен, то работает!
А так, чтобы только в текущем каталоге работало, можно сделать? Это было бы удобнее. Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.
Добавлено спустя 3 минуты:
Ага, работает!Flasher писал(а):Тогда можно в неактивной панели оставлять курсор на этом файле и использовать параметр %T%M.NAA писал(а):Чтобы можно было использовать XMP-файл с произвольным именем.
Т.е. как? Название скрипта и подтверждённая формулировка задачи об этом не свидетельствует?NAA писал(а):А вот это мне в голову не пришло!
Если он один, то его выделять нет смысла. Поэтому речь и идёт о выбранных папках.NAA писал(а):Если каталог выделен, то работает!
И что это даст?NAA писал(а):Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Так ведь речь шла о списке файловFlasher писал(а):Т.е. как? Название скрипта и подтверждённая формулировка задачи об этом не свидетельствует?NAA писал(а):А вот это мне в голову не пришло!
Обычно в одном каталоге лежат фотографии не одного объекта, а нескольких. И каждый из объектов имеет свои GPS-координаты. Так, как сейчас получилось - нужно во вспомогательный каталог копировать фотографии одного объекта, напускать на этот каталог скрипт, удалять скопированные фотографии, затем копировать фотографии другого объекта, уже с другими координатами, и т. д. А если можно было бы работать с выделением, тогда бы я сначала выделил в текущем каталоге фото одного объекта, напустил скрипт, затем подправил бы файл с координатами, выделил второй объект, снова напустил скрипт, и т. д. - пока все объекты не будут охвачены.Flasher писал(а):И что это даст?NAA писал(а):Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.