Быстрая распаковка архива или файлов в архиве во временную папку

Здесь обсуждается всё, что касается макросов.
Post Reply
DV
Posts: 308
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 2 times
Been thanked: 2 times

Быстрая распаковка архива или файлов в архиве во временную папку

Post by DV » Wed 09 Aug, 2017 21:48

Иногда требутся совершить какие-то быстрые действия над файлами в архиве, для чего вначале эти файлы нужно распаковать.
Идея следующего скрипта в том, чтобы автоматизировать создание временной папки и распаковку архива или выделенных файлов в архиве в эту папку. (Примечание: в данном случае папка по факту не является временной, она просто создаётся в папке %TEMP%).
  1. Macro {
  2.   area = "Shell";
  3.   key = "unpack_to_tmpdir";
  4.   description = "Unpack to temp folder";
  5.   action = function()
  6.     local tmppath = win.GetEnv("TEMP") .. os.date("\\_far\\%y%m%d\\%H%M%S\\")
  7.     Keys("ShiftF2"); -- attempt to open the "Extract files" dialog
  8.     if Area.Dialog then
  9.       print(tmppath)
  10.       Keys("Enter") -- extract to the tmppath
  11.       if Area.Dialog then -- frankly, I don't remember why we do it again
  12.         print(tmppath)
  13.         Keys("Enter")
  14.       end
  15.       if Area.Shell then -- the extraction has completed
  16.         Panel.SetPath(0, tmppath)
  17.       end
  18.     end
  19.   end;
  20. }
P.S.
Данный макрос изначально был разработан под FAR2, и затем переписан для FAR3. Поэтому я практически уверен, что средствами FAR3 эту задачу можно решить изящнее (да только не знаю, как).
Last edited by DV on Fri 11 Aug, 2017 09:20, edited 1 time in total.

Post Reply

Return to “Обсуждение макросов”