On this page you can find things about PowerShell.

Backup and Restore your PowerShell script.

Here is a tutorial how to make a Backup and being able to restore your script from the backup with PowerShell.

So, first things first,
You need a Backup folder for your backup.
If you have the Backup folder ready you can start.

Here is the command how to Backup

#Alias <set alias here>
Function global:<set function here> {
$sourceDir = ‘<path to your script>’;
$targetDir = ‘<path to your backup folder>’
$targetFilenameBase = ‘<What the backup zip name starts with>’;
$Days = 14

## 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);

if (Test-Path $sourceDir) {
    $Now = Get-Date
    $LastWrite = $Now.AddDays(-$Days)
    $Files = Get-ChildItem $sourceDir -recurse | Where {$_.LastWriteTime – le “$LastWrite”}
    if ($files) { 
       [io.compression.zipfile]::CreateFromDirectory($sourceDir, $targetDir)        $files | Remove-Item}    }
Set-Alias <command alias here>-BackUp <global function> – Description “<description here>” -Scope Global

And here is the command for Restoring your script from the Backup.

Before running this command, do this command first! Install-Module PS-Menu

# Alias <alias here>
Function global:<global function here> {
$restorechoice = Menu @(Get-ChildItem -Path “<backup directory>” -Filter <$targetFilenameBase>-*.zip)
Write-Host “You have chosen $restorechoice for the restore”
Expand-Archive -LiteralPath $restorechoice -DestinationPath “<path to your script>” -Force

Set-Alias <command alias here> <global function> -Description “<Description here>” -Scope global