powershell - フォルダをバックアップ

概要

フォルダのバックアップをとりたい。
カレントフォルダにbackupフォルダを作成し、圧縮したファイルを保存する。

サンプルコード

バッチファイルからPowerShellを呼び出す。

backup.bat
rem バックアップ対象フォルダを指定する
@echo off
echo backup start
powershell -NoProfile -ExecutionPolicy Unrestricted .\backup.ps1 ./mydoc
echo backup finish
pause > nul
exit
backup.ps1
$target_dir = $args[0]
$backup_dir = "./backup"

if (!(Test-Path $backup_dir -PathType Container)) {
    New-Item -ItemType Directory $backup_dir
}

$date_str = Get-Date -Format "yyyyMMdd_HHmmss"
$zip_file = "$target_dir.$date_str.zip"

$otuput_path = Join-Path $backup_dir $zip_file
Write-host $otuput_path
Compress-Archive -Path $target_dir -DestinationPath $otuput_path