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

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

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

Post by DV »

Иногда требутся совершить какие-то быстрые действия над файлами в архиве, для чего вначале эти файлы нужно распаковать.
Идея следующего скрипта в том, чтобы автоматизировать создание временной папки и распаковку архива или выделенных файлов в архиве в эту папку. (Примечание: в данном случае папка по факту не является временной, она просто создаётся в папке %TEMP%).
  1. Macro {
  2.  
  3.   area = "Shell";
  4.  
  5.   key = "unpack_to_tmpdir";
  6.  
  7.   description = "Unpack to temp folder";
  8.  
  9.   action = function()
  10.  
  11.     local tmppath = win.GetEnv("TEMP") .. os.date("\\_far\\%y%m%d\\%H%M%S\\")
  12.  
  13.     Keys("ShiftF2"); -- attempt to open the "Extract files" dialog
  14.  
  15.     if Area.Dialog then
  16.  
  17.       print(tmppath)
  18.  
  19.       Keys("Enter") -- extract to the tmppath
  20.  
  21.       if Area.Dialog then -- frankly, I don't remember why we do it again
  22.  
  23.         print(tmppath)
  24.  
  25.         Keys("Enter")
  26.  
  27.       end
  28.  
  29.       if Area.Shell then -- the extraction has completed
  30.  
  31.         Panel.SetPath(0, tmppath)
  32.  
  33.       end
  34.  
  35.     end
  36.  
  37.   end;
  38.  
  39. }
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 “Обсуждение макросов”