Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Скрипт, рандомно выбирающий webm, mp4 и картинки из вашего пака. Должен работать на всех версиях Windows.
  2. Как использовать:
  3. 1. Создайте файлы build.vbs и sc.vbs в папке с паком (имена могут быть другими).
  4. 2. Скопируйте туда соответствующие скрипты (приведены ниже).
  5. 3. Запустите build.vbs: он обойдет все подкаталоги в вашем паке и выпишет пути ко всем webm, mp4 и картинкам в файл NfJtmmgNyU.txt (имя выбрано такое, чтобы скрипт случайно не перезаписал какой-то из ваших файлов).
  6. 4. Теперь запускайте sc.vbs: он будет выбирать 10 рандомных файлов и копировать их в определенную папку (по умолчанию "C:\randomPics\"). Её необходимо предварительно создать. Число файлов и путь к папке можно изменить, изменив код sc.vbs. Эти параметры задаются в самом начале кода, имеется комментарий. Почитайте файл sc.vbs.
  7. Осторожно: скрипт удаляет все файлы в выбранной папке перед копированием выбранных рандомных.
  8.  
  9.  
  10. ------------------------------------- build.vbs --------------------------------------
  11.  
  12. curPath = WScript.ScriptFullname
  13. curPath = left(curPath, instrrev(curPath, "\"))
  14.  
  15. Dim fso1
  16. Set fso1 = WScript.CreateObject("Scripting.FileSystemObject")
  17.  
  18. Dim extensions
  19. extensions = Array("jpg", "png", "jpeg", "webm", "mp4") ' расширения файлов, которые будет искать скрипт
  20.  
  21. Function getList(Path)
  22.  
  23.     Set oFolders = fso1.GetFolder(Path)
  24.     Set oSubfiles = oFolders.Files
  25.     Set oSubfolders = oFolders.SubFolders
  26.    
  27.     ResIsEmpty = True
  28.    
  29.     For Each oFile In oSubfiles
  30.         Dim pth
  31.         pth = oFile.Path
  32.    
  33.         Dim ok
  34.         ok = False
  35.         For Each ext in extensions
  36.             if right(pth, Len(pth) - InStrRev(pth, ".")) = ext Then
  37.                 ok = True
  38.             End If
  39.         Next
  40.    
  41.         if ok Then
  42.             if ResIsEmpty Then
  43.                 ReDim res(0)
  44.                 res(0) = pth
  45.                 ResIsEmpty = False
  46.             else
  47.                 ReDim Preserve res(UBound(res) + 1)
  48.                 res(UBound(res)) = pth
  49.             End If
  50.         End If
  51.     Next
  52.    
  53.     if ResIsEmpty = True Then
  54.         ReDim res(0)
  55.     End If
  56.    
  57.     For Each oFolder In oSubfolders
  58.         r = getList(oFolder.Path)
  59.        
  60.         if True Then
  61.             Dim res_len
  62.             res_len = UBound(res) + 1
  63.             ReDim Preserve res(UBound(res) + UBound(r) + 1)
  64.            
  65.             for i = 0 to UBound(r)
  66.                 res(res_len + i) = r(i)
  67.             Next
  68.         End If
  69.     Next
  70.    
  71.     getList = res
  72.    
  73. End Function
  74.  
  75. r = getList(curPath)
  76.  
  77. For Each x In r
  78.     if x <> "" Then
  79.         strListFolders = strListFolders & x & vbCrLf
  80.     End If
  81. Next  
  82.  
  83. outFile= "NfJtmmgNyU.txt"
  84. Set objFile = fso1.CreateTextFile(outFile, True)
  85. objFile.Write strListFolders & vbCrLf
  86. objFile.Close
  87.  
  88.  
  89. ------------------------------------- sc.vbs --------------------------------------
  90. strFile = ".\NfJtmmgNyU.txt"
  91. Count = 10 ' Число сохраняемых файлов. Можно изменить.
  92. PathToRandom = "C:\randomPics\" ' Путь, куда файлы копируются. Можно изменить. Осторожно, скрипт стирает все файлы в этой папке в процессе работы.
  93.  
  94. Dim fso1
  95. Set fso1 = WScript.CreateObject("Scripting.FileSystemObject")
  96.  
  97. Set objFile = fso1.OpenTextFile(strFile)
  98. strLine = objFile.ReadLine
  99.  
  100. ReDim res(0)
  101. res(0) = strLine
  102.  
  103. Do Until objFile.AtEndOfStream
  104.     strLine = objFile.ReadLine
  105.     ReDim Preserve res(UBound(res) + 1)
  106.     res(UBound(res)) = strLine
  107. Loop
  108. objFile.Close
  109.  
  110. Set oFolders = fso1.GetFolder(PathToRandom)
  111. Set oSubfiles = oFolders.Files
  112.  
  113. For Each oFile In oSubfiles
  114.     fso1.DeleteFile oFile
  115. Next
  116.  
  117. Randomize
  118. for i = 1 to Count
  119.     Dim rrr
  120.     rrr = res(Int(Rnd * (UBound(res) + 1)))
  121.     ext = right(rrr, Len(rrr) - InStrRev(rrr, "."))
  122.    
  123.     fso1.CopyFile rrr, PathToRandom, True
  124.  
  125.     fileName = PathToRandom & i & "." & ext
  126.  
  127.     fso1.MoveFile PathToRandom + right(rrr, Len(rrr) - instrrev(rrr, "\")), fileName
  128. Next
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement