Skip to content

Instantly share code, notes, and snippets.

@mistificator
Last active February 2, 2016 15:05
Show Gist options
  • Save mistificator/0f401101829950369800 to your computer and use it in GitHub Desktop.
Save mistificator/0f401101829950369800 to your computer and use it in GitHub Desktop.
Puts folder contents into a zip-file named %folder%_#%yyyy_mm_dd%.zip
@if exist zip.vbs del /f /q zip.vbs
@echo Set objArgs = WScript.Arguments >> zip.vbs
@echo zipFile = objArgs(0) >> zip.vbs
@echo sFolder = objArgs(1) >> zip.vbs
@echo Set objFSO = CreateObject("Scripting.FileSystemObject") >> zip.vbs
@echo With objFSO >> zip.vbs
@echo zipFile = .GetAbsolutePathName(zipFile) >> zip.vbs
@echo sFolder = .GetAbsolutePathName(sFolder) >> zip.vbs
@echo With .CreateTextFile(zipFile, True) >> zip.vbs
@echo .Write Chr(80) ^& Chr(75) ^& Chr(5) ^& Chr(6) ^& String(18, chr(0)) >> zip.vbs
@echo End With >> zip.vbs
@echo End With >> zip.vbs
@echo With CreateObject("Shell.Application") >> zip.vbs
@echo .NameSpace(zipFile).CopyHere .NameSpace(sFolder).Items >> zip.vbs
@echo skipped = 1 ' script itself LOL >> zip.vbs
@echo For Each objItem in .NameSpace( sFolder ).Items >> zip.vbs
@echo If objItem.IsFolder Then >> zip.vbs
@echo Set objFolder = objFSO.GetFolder( objItem.Path ) >> zip.vbs
@echo If objFolder.Files.Count + objFolder.SubFolders.Count = 0 Then ' skip empty folders >> zip.vbs
@echo skipped = skipped + 1 >> zip.vbs
@echo End If >> zip.vbs
@echo End If >> zip.vbs
@echo Next >> zip.vbs
@echo Do Until .NameSpace(zipFile).Items.Count = _ >> zip.vbs
@echo .NameSpace(sFolder).Items.Count - skipped >> zip.vbs
@echo WScript.Sleep 1000 >> zip.vbs
@echo Loop >> zip.vbs
@echo End With >> zip.vbs
@for %%* in (.) do set folder=%%~nx*
@set datetemp=%date:~-10%
@Set yyyy=%DATE:~-4%&
@set mm=%DATE:~3,2%%
@set dd=%DATE:~,2%
@set yyyy_mm_dd=%yyyy%_%mm%_%dd%
@if exist ".\..\%folder%_#%yyyy_mm_dd%.zip" del /f /q ".\..\%folder%_#%yyyy_mm_dd%.zip"
@cscript.exe zip.vbs ".\..\%folder%_#%yyyy_mm_dd%.zip" "%cd%"
@if exist zip.vbs del /f /q zip.vbs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment