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 

Single Post  Topic: Autorun 
Author Message
yahuu



PostPosted: Sat Dec 21, 2024 17:56    Post subject: Reply with quote

Можете ли вы предоставить функцию LoopListSel()? Обрабатывайте текущие выбранные элементы по одному в цикле. В настоящее время я реализую это следующим образом. Или есть лучший способ?

Code:

Func separateCompress()
   Local Count = RequestInfo(11005)
   If Count=0 Then SendCommand(2936,-1)
   Local Count = RequestInfo(11005), ListSel = GetSelectedItems(3, 0)
   
   For var = 1 To Count
      Local Name = StrPart(ListSel, auCRLF, var)
      Local FullName = RequestCopyDataInfo("SP") & Name
      Local FullNoExtNewName = getFullNoExtName(RequestCopyDataInfo("SP"), Name) & ".7z"   
      Local sParam = 'a -t7z -mx=5 "' & FullNoExtNewName & '" "' & FullName & '"'
      
      ShellExec %"s7zip" %"sParam"
   Next
EndFunc

Func getFullNoExtName(sPath, fileName)
   #Если имя папки содержит символ ., TotalCMD будет рассматривать содержимое после . как расширение, поэтому необходимо обрабатывать папки отдельно.
   If StrPos(FileGetAttr(sPath & fileName), "D") Then
      Return sPath & fileName
   Else
      If StrPos(fileName, '.') > 0 Then
         Return sPath & StrLeft(fileName, StrPos(fileName, '.', -1)-1)
      Else
         Return sPath & fileName
      EndIf
   EndIf
EndFunc
View user's profile Send private message Send e-mail


Powered by phpBB © 2001, 2005 phpBB Group