User Tools

Site Tools


microsoft:scripting:vbscript:scripts:7zipcompresssubdirs

Versie 1

Voor het comprimeren van subdirectories van een directory naar een 7-zip archief met de naam van de subdirectory.

'Voor het comprimeren van alle subfolders van een folder met 7-zip.
'Bedoeld voor scheduled task
 
'on error resume next
 
sourcefolder = "d:\Misc\uit dienst home dir\"
destinationfolder = "D:\Misc\BACKUP\UITDIENST\"
 
'logfile en tooldir locatie mogen geen spaties bevatten.
logfile = "C:\Logs\7zipCompressSubdirs-log.txt"
tooldir = "c:\Tools\7-zip\"
 
CONST HideWindow = 0
CONST WaitOnReturn = True
 
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
 
If objFso.FolderExists(sourcefolder) AND objFso.FolderExists(destinationfolder) Then
 
	Set WorkFolder = objFso.GetFolder(sourcefolder)
 
	For Each folder in WorkFolder.SubFolders
 
		If NOT objFso.FileExists(destinationfolder & folder.Name & ".7z") Then
 
			objShell.Run "CMD /C " & chr(34) & tooldir & "7za.exe a -t7z -r " & chr(34) & destinationfolder & folder.Name & ".7z" & chr(34) & " " & chr(34) & sourcefolder & folder.Name & "\*" & chr(34) & " -m0=PPMd -mx=9" & chr(34) & " >> " & logfile, HideWindow ,WaitOnReturn
 
		End If
 
	Next
 
End If
 
Set objShell = Nothing
Set objFso = Nothing

Het stukje code chr(34) & sourcefolder & folder.Name & “\*” & chr(34) is nodig omdat als je & “\*” weglaat 7za.exe alle directories met dezelfde naam die in de sourcefolder en subdirecories staan meeneemt in het archiefbestand. Bijv C:\temp\foldera en c:\temp\folderb\tijdelijk\bestanden\foldera zouden beiden in een foldera.7z bestand terechtkomen. Ik ben er nog niet over uit of dit nu een bug is in 7za.exe of gewoon by design zo is. Nadeel van & “\*” is dat de directory niet in het archiefbestand staat, alleen de inhoud en subdirectories met inhoud. Bijv. C:\temp\foldera\tekst.txt staat in foldera.7z als tekst.txt en niet als \foldera\tekst.txt.

microsoft/scripting/vbscript/scripts/7zipcompresssubdirs.txt · Last modified: 2009/09/16 15:31 by bas

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki