Я разрабатываю скрипт, чтобы разделить количество файлов в папке на четыре группы. Они будут преобразованы в четыре пакетных файла, но на данный момент проблема делит их как можно более равномерно.vbscript делить файлы на четыре группы
Сценарий ниже будет работать несколько - если у меня есть граф, который будет разделен на 4 равномерно, но если у меня будет нечетное число, не будет идти и будет меньше четырех. Вы можете запустить скрипт, просто заменив «C: \ 1_SourceData \ Section_16 \» на свой собственный путь к файлам. Если вы отмените комментарий к разделу «Добавить остаток на передний план», это должно было сделать любые дополнительные файлы, например нечетное число, первой партии, но это не совсем работает. Количество файлов в папке будет варьироваться от 1 до 25.
Любая помощь будет оценена по достоинству.
Option Explicit
Dim fileList : Set fileList = GetFileList("C:\1_SourceData\Section_16\")
Dim NumOfFiles : NumOfFiles = fileList.Count - 1
Dim modNumber : modNumber = NumOfFiles/4
Dim remainder : remainder = NumOfFiles Mod modNumber
Dim string1 : string1 = "batch" & batchCounter
Dim string2 : string2 = ""
'Add remainder to front
'Dim i : i = 0
'For i = NumOfFiles - remainder To NumOfFiles
' string2 = string2 & vbTab & fileList(i) & vbNewLine
'Next
Dim batchCounter : batchCounter = 1
Dim file
Dim j : j = 0
For Each file In fileList
string2 = string2 & vbTab & file & vbNewLine
j = j + 1
If j Mod modNumber = 0 Then
WScript.Echo string1 & vbNewLine & string2
batchCounter = batchCounter + 1
string1 = "batch" & batchCounter
string2 = ""
End If
Next
Public Function GetFileList(path)
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim fileList : Set fileList = CreateObject("System.Collections.ArrayList")
Dim InfFolder : Set InfFolder = objFSO.GetFolder(path)
Dim File
For Each File In objFSO.GetFolder(path).Files
fileList.Add File
Next Set GetFileList = fileList
End Function