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.
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.
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.
| Archivo | Estado | Carpeta |
|---|---|---|
| Employees_Clean.csv | Validated | C:\Data\Final |
| Departments_Clean.csv | Validated | C:\Data\Final |
| Audit_Report.csv | Generated | C:\Data\Final |
Compress-Archive -Path "C:\Data\Final\*.csv" ` -DestinationPath "C:\Data\Entrega_Procesada.zip" -Update
| Archivo ZIP | Contenido | Uso |
|---|---|---|
| Entrega_Procesada.zip | CSV finales procesados | Entrega controlada |
# ==========================================================
# 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"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."
}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.