フォルダ内のファイル数を4つのグループに分けるスクリプトを開発しています。これらは4つのバッチファイルに変換されますが、問題はできるだけ均等に分割することです。vbscriptは4つのグループにファイルを分割します
以下のスクリプトは、4を均等に分割するカウントを持っていても、奇数の場合は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