Guest User

(dummy) template.vbs

a guest
Apr 29th, 2025
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' APP_NAME - verzia finder (test)
  2. ' Apr 29, 2025
  3.  
  4. Const version = "1.0.0"
  5. Dim winver : winver = Salamander.WindowsVersion
  6. Dim ASver : ASver = Salamander.Version
  7.  
  8. Dim basePath
  9. basePath = "H:\Apps\APP_PATH"  ' <- testovacia cesta
  10.  
  11. Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
  12. If Not fso.FolderExists(basePath) Then
  13.     ' Cesta neexistuje, skonči, DO NOHING
  14.    ' Salamander.TargetPanel.Path = basePath
  15. Else
  16.     Dim folder, subfolder
  17.     Dim bestFolderPath, bestVersion
  18.     Set folder = fso.GetFolder(basePath)
  19.  
  20.     For Each subfolder In folder.SubFolders
  21.         Dim folderName, versionText
  22.         folderName = subfolder.Name
  23.  
  24.         If LCase(Left(folderName, 1)) = "v" Then
  25.             ' Extrahuj verziu medzi "v" a prvou medzerou (alebo koncom)
  26.            Dim firstSpace
  27.             firstSpace = InStr(folderName, " ")
  28.             If firstSpace > 2 Then
  29.                 versionText = Mid(folderName, 2, firstSpace - 2)
  30.             Else
  31.                 versionText = Mid(folderName, 2)
  32.             End If
  33.  
  34.             ' Skontroluj, či verzia má správny formát
  35.            If IsVersion(versionText) Then
  36.                 If bestVersion = "" Or CompareVersions(versionText, bestVersion) > 0 Then
  37.                     bestVersion = versionText
  38.                     bestFolderPath = subfolder.Path
  39.                 End If
  40.             End If
  41.         End If
  42.     Next
  43.  
  44.     ' Ak je nájdený priečinok s platnou verziou, nastav ho
  45.    If bestFolderPath <> "" Then
  46.         Salamander.TargetPanel.Path = bestFolderPath
  47.     Else
  48.         ' Inak, prejdeme na pôvodný basePath (žiadna ďalšia akcia)
  49.        Salamander.TargetPanel.Path = basePath
  50.     End If
  51. End If
  52.  
  53. ' --- Pomocné funkcie ---
  54.  
  55. Function CompareVersions(v1, v2)
  56.     Dim arr1, arr2, i, n1, n2, maxLen
  57.     arr1 = Split(v1, ".")
  58.     arr2 = Split(v2, ".")
  59.     maxLen = Max(UBound(arr1), UBound(arr2))
  60.  
  61.     For i = 0 To maxLen
  62.         If i <= UBound(arr1) Then n1 = CInt(arr1(i)) Else n1 = 0
  63.         If i <= UBound(arr2) Then n2 = CInt(arr2(i)) Else n2 = 0
  64.         If n1 > n2 Then CompareVersions = 1 : Exit Function
  65.         If n1 < n2 Then CompareVersions = -1 : Exit Function
  66.     Next
  67.     CompareVersions = 0
  68. End Function
  69.  
  70. Function Max(a, b)
  71.     If a > b Then Max = a Else Max = b
  72. End Function
  73.  
  74. Function IsVersion(str)
  75.     Dim parts, part
  76.     parts = Split(str, ".")
  77.     If UBound(parts) < 0 Then IsVersion = False : Exit Function
  78.  
  79.     For Each part In parts
  80.         If Not IsNumeric(part) Then IsVersion = False : Exit Function
  81.     Next
  82.     IsVersion = True
  83. End Function
  84.  
Advertisement
Add Comment
Please, Sign In to add comment