You have a folder that you would like to compress with one click and save the result to a specific folder and file name. To have a regular backup and archive, multiple backup files e.g. every night or on each user logon/logoff should be created.
The following simple powershell scripts allow to compress the content of a folder and create a zip file on another location. This can be used e.g. as a simple backup solution.
The following scripts require Powershell 4/5 for Windows, and Powershell 6 for Mac/Linux/arm user (using Powershell Core).
Simple script – zip file for directory with same target file name
The following powershell script creates a zip file based from $sourceDir and writes the result to $targetFile .
$sourceDir = 'c:\data'; $targetFile = 'c:\backup\data.zip' ## no changes here Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory($sourceDir, $targetFile);
Advanced script – zip backup file with target filename including timestamp
The following advanced powershell script creates a zip file based on the content of the folder $sourceDir. The output is written to a file named “data-” and the current timestamp, located in the $targetDir.
$sourceDir = 'c:\data'; $targetDir = 'c:\backup\' $targetFilenameBase = 'data-'; ## no changes here $date = get-date; $dateStr = $date.ToString("yyyy-MM-dd_HH-mm"); $targetFile = $targetDir+$targetFilenameBase+$dateStr+'.zip'; Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory($sourceDir, $targetFile);
How to use the backup powershell script
Just copy the content of one of the solutions in a text editor or the Windows PowerShell Integrated Scripting Environment (ISE) , save the result to a file as e.g. create_backup.ps1 and run it.
Windows 10 provides further backup application and features – with some advanced features, that require addition settings and hardware.
Powershell 7 provides also features to create and decompress zip files with the functions Compress-Archive and Expand-Archive .