hoi allemaal,
ik ben nieuw hier, ik had een vraagje, ik zat een beetje met vbscript te werken, dus heb ik effe wat inelkaar gezet wat aan mijn eisen bijna voldoet, nu loop ik ergens vast.
hier is mijn code:
XZip.dll hoort erbij
-----------------------------------------------------------------------------------------------------------------------------
Function zipFolder(foldername)
Dim jaar, maand, dag
Dim outputname
jaar = CStr(Year(Date))
maand = CStr(Month(Date))
dag = CStr(Day(Date))
' normale datumoutput
outputname = String(4 - Len(jaar), "0") & jaar & String(2 - Len(maand), "0") & maand & String(2 - Len(dag), "0") & dag & ".zip"
outputname = foldername & "\" & outputname
' ActiveX object aanmaken voor logfiles
Dim curFiles()
getFiles foldername, ".log", curFiles
Dim ZipFile
Set ZipFile = CreateObject("XStandard.Zip")
For Each source In curFiles
Set delFile = CreateObject("Scripting.FileSystemObject")
If delFile.FileExists(source) Then
ZipFile.Pack source, outputname
delFile.DeleteFile source, True
End If
Next
Set ZipFile = Nothing
End Function
Function getFiles(folder, extensie, byref arraylist)
Dim fsO
Set fsO = CreateObject("Scripting.FileSystemObject")
Dim files
Set files = fsO.GetFolder(folder)
'Dim outputFiles()
ReDim arraylist(files.Files.Count)
Dim x
x = 0
For Each file In files.Files
If InStr(1, file.DateCreated, CStr(Date)) > 0 Then
arraylist(x) = file
x = x + 1
End If
Next
ReDim Preserve arraylist(x)
End Function
zipFolder("C:\test")
---------------------------------------------------------------------------------------------------------------------------------------------
wat doen deze code, die gaan naar een aangegeven directory, en alle bestanden met een .txt en .log extensie zippen, en de naam verandert naar de datum van de dag wanneer het gedraait is en hij pakt alleen bestanden die op die dag gemaakt zijn.
maar mijn vraag is, hoe roep ik nou die code/.vbs bestaand, via een batch file met een parameter?
of
dat ik zeg maar ipv van zipFolder("C:\test") meer directorys kan aangeven?
Bedankt
ik ben nieuw hier, ik had een vraagje, ik zat een beetje met vbscript te werken, dus heb ik effe wat inelkaar gezet wat aan mijn eisen bijna voldoet, nu loop ik ergens vast.
hier is mijn code:
XZip.dll hoort erbij
-----------------------------------------------------------------------------------------------------------------------------
Function zipFolder(foldername)
Dim jaar, maand, dag
Dim outputname
jaar = CStr(Year(Date))
maand = CStr(Month(Date))
dag = CStr(Day(Date))
' normale datumoutput
outputname = String(4 - Len(jaar), "0") & jaar & String(2 - Len(maand), "0") & maand & String(2 - Len(dag), "0") & dag & ".zip"
outputname = foldername & "\" & outputname
' ActiveX object aanmaken voor logfiles
Dim curFiles()
getFiles foldername, ".log", curFiles
Dim ZipFile
Set ZipFile = CreateObject("XStandard.Zip")
For Each source In curFiles
Set delFile = CreateObject("Scripting.FileSystemObject")
If delFile.FileExists(source) Then
ZipFile.Pack source, outputname
delFile.DeleteFile source, True
End If
Next
Set ZipFile = Nothing
End Function
Function getFiles(folder, extensie, byref arraylist)
Dim fsO
Set fsO = CreateObject("Scripting.FileSystemObject")
Dim files
Set files = fsO.GetFolder(folder)
'Dim outputFiles()
ReDim arraylist(files.Files.Count)
Dim x
x = 0
For Each file In files.Files
If InStr(1, file.DateCreated, CStr(Date)) > 0 Then
arraylist(x) = file
x = x + 1
End If
Next
ReDim Preserve arraylist(x)
End Function
zipFolder("C:\test")
---------------------------------------------------------------------------------------------------------------------------------------------
wat doen deze code, die gaan naar een aangegeven directory, en alle bestanden met een .txt en .log extensie zippen, en de naam verandert naar de datum van de dag wanneer het gedraait is en hij pakt alleen bestanden die op die dag gemaakt zijn.
maar mijn vraag is, hoe roep ik nou die code/.vbs bestaand, via een batch file met een parameter?
of
dat ik zeg maar ipv van zipFolder("C:\test") meer directorys kan aangeven?
Bedankt