proyecto-global-psp/res/scripts/script.ps1

55 lines
2.0 KiB
PowerShell
Executable File

out-null
cls
# SCRIPT: backup_script.ps1
# --- CONFIGURACIÓN DE RUTAS ---
# La carpeta de ORIGEN es la carpeta 'Pictures' (Imágenes) del usuario
$SourceFolder = Join-Path $env:USERPROFILE "Pictures"
# La carpeta base de DESTINO es 'BACKUPS' dentro del directorio raíz del usuario
$DestinationBasePath = Join-Path $env:USERPROFILE "BACKUPS"
# ------------------------------
# 1. Verificar que la carpeta de origen exista
if (-not (Test-Path $SourceFolder)) {
Write-Error "ERROR: La carpeta de origen '$SourceFolder' (Imágenes) no existe."
exit 1 # Código de error
}
# 2. Generar el nombre de la carpeta con la fecha y hora (Formato: backup-AAAA-MM-DD_HH-MM-SS)
$Timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$BackupFolderName = "backup-$Timestamp"
# 3. Crear la ruta final de destino
$FinalDestinationPath = Join-Path $DestinationBasePath $BackupFolderName
# 4. Crear la carpeta base 'BACKUPS' si no existe y luego la carpeta de la copia
try {
# New-Item -ItemType Directory -Path $FinalDestinationPath -Force:
# Crea la estructura completa ($DestinationBasePath/backup-...)
Write-Host "Creando carpeta de destino: $FinalDestinationPath"
$null = New-Item -ItemType Directory -Path $FinalDestinationPath -Force
} catch {
Write-Error "ERROR: No se pudo crear la carpeta de destino: $($_.Exception.Message)"
exit 1
}
# 5. Ejecutar la copia recursiva (Copiando el *contenido* de la carpeta de Imágenes)
Write-Host "Iniciando copia de seguridad de '$SourceFolder' a '$FinalDestinationPath'..."
try {
# Copia todo el contenido de $SourceFolder (el asterisco es importante)
Copy-Item -Path "$SourceFolder\*" -Destination $FinalDestinationPath -Recurse -Force
# 6. Mensaje de finalización
Write-Host ""
Write-Host "✅ Copia de seguridad completada con éxito."
Write-Host " Origen: $SourceFolder"
Write-Host " Destino: $FinalDestinationPath"
} catch {
Write-Error "ERROR: La copia de seguridad falló durante la copia de archivos: $($_.Exception.Message)"
exit 1
}
exit 0 # Código de éxito