yahuu
|
Posted: Sat Dec 21, 2024 17:56 Post subject: |
|
|
Можете ли вы предоставить функцию 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
|
|
|