31 lines
933 B
PowerShell
31 lines
933 B
PowerShell
param(
|
|
[string]$BackupZip = "",
|
|
[string]$TargetDir = "e:\Zhan\.data"
|
|
)
|
|
|
|
if ($BackupZip -eq "") {
|
|
$latest = Get-ChildItem -Path "e:\Zhan\backups" -Filter "*.zip" -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select-Object -First 1
|
|
if ($null -eq $latest) {
|
|
Write-Error "No backup zip found in e:\Zhan\backups and BackupZip not provided."
|
|
exit 1
|
|
}
|
|
$BackupZip = $latest.FullName
|
|
}
|
|
|
|
if (!(Test-Path $BackupZip)) {
|
|
Write-Error "Backup zip not found: $BackupZip"
|
|
exit 1
|
|
}
|
|
|
|
if (Test-Path $TargetDir) {
|
|
$bakDir = "$TargetDir.bak.$((Get-Date).ToString('yyyyMMdd_HHmmss'))"
|
|
Move-Item -Path $TargetDir -Destination $bakDir
|
|
Write-Host "Existing data moved to:" $bakDir
|
|
}
|
|
|
|
New-Item -ItemType Directory -Force -Path $TargetDir | Out-Null
|
|
Expand-Archive -Path $BackupZip -DestinationPath $TargetDir -Force
|
|
|
|
Write-Host "Data restored from:" $BackupZip
|
|
Write-Host "Target directory:" $TargetDir
|