55 lines
2.0 KiB
PowerShell
Executable File
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 |