PowerShell Advanced Series

20. Comprimir la data limpia para transmisión

20. Compress Clean Data for Transmission

Tomar el CSV ya procesado, validado y enriquecido, y comprimirlo nativamente en un archivo .zip listo para enviarse.

Take the already processed, validated, and enriched CSV and compress it natively into a .zip file ready for delivery.

⚠️ Advertencia de ciberseguridad y producción ⚠️ Cybersecurity and production warning

Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, carpetas compartidas, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.

This exercise is for learning and testing only. Do not run scripts against real data, production environments, shared folders, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.

Objetivo del ejercicio

Exercise objective

Crear un paquete comprimido con los archivos finales de datos limpios. Este paso ayuda a reducir tamaño, facilitar la entrega y mantener juntos los archivos procesados antes de enviarlos por email, portal interno o repositorio autorizado.

Create a compressed package with the final clean data files. This step helps reduce size, simplify delivery, and keep processed files together before sending them by email, internal portal, or authorized repository.

Datos sintéticos

Synthetic data

ArchivoEstadoCarpeta
Employees_Clean.csvValidatedC:\Data\Final
Departments_Clean.csvValidatedC:\Data\Final
Audit_Report.csvGeneratedC:\Data\Final

Ejemplo base

Base example

Compress-Archive -Path "C:\Data\Final\*.csv" `
-DestinationPath "C:\Data\Entrega_Procesada.zip" -Update

Resultado esperado

Expected result

Archivo ZIPContenidoUso
Entrega_Procesada.zipCSV finales procesadosEntrega controlada

Script completo

Complete script

# ==========================================================
# PowerShell Advanced Topic 20
# Compress Clean Data for Transmission
# ==========================================================

$sourceFolder = "C:\Data\Final"
$zipFile      = "C:\Data\Entrega_Procesada.zip"

# Validate source folder
if (!(Test-Path $sourceFolder)) {
    Write-Host "Source folder not found: $sourceFolder"
    exit
}

# Get final CSV files
$files = Get-ChildItem -Path $sourceFolder -Filter "*.csv"

if ($files.Count -eq 0) {
    Write-Host "No CSV files found in: $sourceFolder"
    exit
}

# Remove previous ZIP if it exists
if (Test-Path $zipFile) {
    Remove-Item $zipFile -Force
}

# Compress clean CSV files
Compress-Archive -Path "$sourceFolder\*.csv" -DestinationPath $zipFile

# Confirm output
Write-Host "Compression completed."
Write-Host "Files compressed: $($files.Count)"
Write-Host "ZIP file created at: $zipFile"

Validación del ZIP

ZIP validation

Después de crear el archivo comprimido, podemos confirmar que existe y revisar su tamaño.

After creating the compressed file, we can confirm that it exists and review its size.

# Validate ZIP file
if (Test-Path $zipFile) {
    $zipInfo = Get-Item $zipFile

    [PSCustomObject]@{
        ZipFile = $zipInfo.FullName
        SizeMB  = "{0:N2}" -f ($zipInfo.Length / 1MB)
        Created = $zipInfo.CreationTime
    } | Format-Table -AutoSize
}
else {
    Write-Host "ZIP file was not created."
}

Aplicaciones reales

Real-world applications

  • Preparar entregas mensuales de datos limpios.
  • Enviar reportes validados a otro departamento.
  • Agrupar archivos finales de un proceso ETL.
  • Reducir tamaño antes de transmitir archivos.
  • Prepare monthly clean data deliveries.
  • Send validated reports to another department.
  • Group final files from an ETL process.
  • Reduce file size before transmission.

Recomendaciones

Recommendations

  • Validar los archivos antes de comprimirlos.
  • No incluir datos sensibles si el destino no está autorizado.
  • Nombrar el ZIP con fecha o versión del proceso.
  • Guardar evidencia del contenido enviado.
  • Validate files before compressing them.
  • Do not include sensitive data if the destination is not authorized.
  • Name the ZIP with the process date or version.
  • Keep evidence of the transmitted content.

Valor del tópico

Topic value

Este patrón cierra el ciclo de procesamiento: después de limpiar, validar, auditar y enriquecer la data, se genera un paquete listo para entrega. Es un paso simple, pero muy útil para procesos repetibles, trazables y profesionales.

This pattern closes the processing cycle: after cleaning, validating, auditing, and enriching the data, a delivery-ready package is generated. It is a simple but very useful step for repeatable, traceable, and professional processes.