Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как скопировать файл под разными именами из списка имен?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Fri Dec 05, 2014 23:53    Post subject: Как скопировать файл под разными именами из списка имен? Reply with quote

Имеется файл с определенным содержимым. Нужно размножить его под разными именами на основании имеющегося списка имен. Как это быстро сделать?

Чтобы была понятнее задача, напишу подробнее.
Имеется коллекция фотографий в формате RAW (если уж совсем точно - CR2 от Canon'а). Фотоаппарат не имеет GPS-модуля. А я хочу к фотографиям добавить GPS-координаты. Я знаю, что если я создам файлы в формате XMP с координатами и дам им те же имена, что и CR2-файлы, то RAW-конвертер автоматически подхватит координаты из одноименных XMP-файлов.
Эталонный XMP-файл я создал. Теперь задача: размножить этот файл по папкам с фотографиями. Как получить список CR2-файлов в каждой папке с помощью TC, я знаю. А вот как на основании этого списка файлов размножить свой XMP-файл, я так и не понял.

Если это невозможно сделать через TC, то как можно сделать другим способом?

 !  Avada:
Перенесено из "Общих вопросов" в "Автоматизацию".
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 01:36    Post subject: Reply with quote

Если всё сводится к задаче
NAA wrote:
размножить этот файл по папкам с фотографиями
, то что мешает использовать опцию "Копировать во все выделенные папки/ссылки целевой панели"?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 12:39    Post subject: Reply with quote

Так нужно, чтобы в каждой папке было столько экземпляров этого файла, сколько там есть фотографий, и чтобы каждый экземпляр файла при этом назывался так, как называется каждый файл фотографии. Я же подробно об этом написал...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 13:54    Post subject: Reply with quote

Тогда это точно не в Общие вопросы.
Речь идёт о базовых именах файлов?
Описывать задачу нужно проще (без лишней шелухи). Что-то вроде: создать в выбранных каталогах копии XMP-файла рядом с CR2-файлами, придав им то же базовое имя.
Теперь я правильно понял?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 14:36    Post subject: Reply with quote

Flasher wrote:
создать в выбранных каталогах копии XMP-файла рядом с CR2-файлами, придав им то же базовое имя.

Совершенно верно!
Можно задачу упростить: не в выбранных каталогах, а в текущем каталоге.
И еще уточнение: желательно уметь работать с выделенным подмножеством CR2-файлов в данном каталоге
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 15:08    Post subject: Reply with quote

NAA wrote:
Можно задачу упростить
Лень уже упрощать. VBS:
Code:
'===========================================================
' 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) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 15:55    Post subject: Reply with quote

Что-то у меня не работает. Наверно, что-то не так делаю.
Я сделал так.
Создал файл CopyFiles.vbs. Поместил в него содержимое скрипта.
В Панели инструментов TC добавил кнопочку, в строке «Команда» поместил «d:\!Test\!!!\CopyFiles.vbs»; в строке «Параметры» поместил «? %WL "%P%N" cr2».
Ставлю курсор на исходный XMP-файл, нажимаю созданную кнопочку.
Что-то происходит, но в текущем каталоге ничего не появляется.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 16:01    Post subject: Reply with quote

NAA wrote:
? %WL "%P%N" cr2
Зачем тут знак вопроса? %P%N в кавычки не берётся и будет иметь место только в случае расположения выбранных папок в одном каталоге с файлом, поэтому путь к нему лучше указывать прямой. Смысл файл выбирать в панели?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 16:10    Post subject: Reply with quote

Flasher wrote:
Зачем тут знак вопроса?
Чтобы проверить, что команда формируется правильная. Поскольку не работало, я его и вставил.

Flasher wrote:
%P%N в кавычки не берётся
Без кавычек тоже не работало.

Flasher wrote:
Смысл его выбирать в панели?
Чтобы можно было использовать XMP-файл с произвольным именем.
Но и с постоянным именем тоже не работает.
Т. е. с такими параметрами: «%WL 1.xmp cr2» тоже не сработало.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 16:16    Post subject: Reply with quote

NAA wrote:
Чтобы проверить, что команда формируется правильная.
И что, правильная команда вышла?
NAA wrote:
Без кавычек тоже не работало.
И я пояснил почему.
NAA wrote:
Чтобы можно было использовать XMP-файл с произвольным именем.
Тогда можно в неактивной панели оставлять курсор на этом файле и использовать параметр %T%M.
NAA wrote:
Т. е. с такими параметрами: «%WL 1.xmp cr2» тоже не сработало.
А где тут, собственно, прямой путь? Я вижу только имя. Для чего пример в шапке приводится?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 16:19    Post subject: Reply with quote

Flasher wrote:
А где тут, собственно, прямой путь? Я вижу только имя. Для чего пример в шапке приводится?

Так с него и начал...
Не работает ни такая команда: «%WL "d:\!Test\1.xmp" cr2», ни такая: «%WL d:\!Test\1.xmp cr2». Это я уж потом начал экспериментировать...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 16:22    Post subject: Reply with quote

Хм. А каталоги-то выделены или нет?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 16:41    Post subject: Reply with quote

Flasher wrote:
Хм. А каталоги-то выделены или нет?
А вот это мне в голову не пришло! Я просто был в текущем каталоге.
Если каталог выделен, то работает!

А так, чтобы только в текущем каталоге работало, можно сделать? Это было бы удобнее. Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.

Добавлено спустя 3 минуты:

Flasher wrote:
NAA wrote:
Чтобы можно было использовать XMP-файл с произвольным именем.
Тогда можно в неактивной панели оставлять курсор на этом файле и использовать параметр %T%M.
Ага, работает!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Dec 06, 2014 16:44    Post subject: Reply with quote

NAA wrote:
А вот это мне в голову не пришло!
Т.е. как? Название скрипта и подтверждённая формулировка задачи об этом не свидетельствует?
NAA wrote:
Если каталог выделен, то работает!
Если он один, то его выделять нет смысла. Поэтому речь и идёт о выбранных папках.
NAA wrote:
Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.
И что это даст?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
NAA



Joined: 05 Dec 2014
Posts: 18

Post (Separately) Posted: Sat Dec 06, 2014 17:08    Post subject: Reply with quote

Flasher wrote:
NAA wrote:
А вот это мне в голову не пришло!
Т.е. как? Название скрипта и подтверждённая формулировка задачи об этом не свидетельствует?
Так ведь речь шла о списке файлов Very Happy

Flasher wrote:
NAA wrote:
Тогда, может быть, можно будет сделать так, чтобы работало только с выделенными файлами в текущем каталоге.
И что это даст?

Обычно в одном каталоге лежат фотографии не одного объекта, а нескольких. И каждый из объектов имеет свои GPS-координаты. Так, как сейчас получилось - нужно во вспомогательный каталог копировать фотографии одного объекта, напускать на этот каталог скрипт, удалять скопированные фотографии, затем копировать фотографии другого объекта, уже с другими координатами, и т. д. А если можно было бы работать с выделением, тогда бы я сначала выделил в текущем каталоге фото одного объекта, напустил скрипт, затем подправил бы файл с координатами, выделил второй объект, снова напустил скрипт, и т. д. - пока все объекты не будут охвачены.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group