Powershell script – create folder and zip – backup

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.

Prerequisit

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.

Other solutions

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 .

Please specify the install prefix of iconv with –with-iconv

Error message

configure: error: Please specify the install prefix of iconv with --with-iconv=

Related to

MAMP compilation of PHP extensions as e.g. pnctl or mongo as described e.g. at http://adam.merrifield.ca/2014/09/21/php-mongodb-and-mamp/ or http://linhmtran168.github.io/blog/2013/12/10/setup-boris-with-mamp-in-mac-osx-mavericks/

Solution

run configure without iconv support:

./configure --without-iconv

phpOpenEMM now on github

We recently moved the source code for the PHP – wrapper for the email marketing software OpenEMM to github. It is also available via packagist for easier installation. Feel free to follow, fork and send pull requests!

Links

sample code for Google Client API published

Gallery

The sample code for the Google Client API pages has been updated. It now uses the names of the new Google Client PHP API release and also switched from object – reference to arrays. Finally the source code is available … Continue reading