Cybersecurity & Production Environment Warning
This exercise is intended for learning and testing purposes only. Do not execute scripts against production environments, business-critical systems, enterprise repositories, payroll files, HR records, student records, patient records, or shared network locations without proper authorization, testing, backups, change-control procedures, and compliance with your organization's cybersecurity policies.
Advertencia de ciberseguridad y ambiente de producción
Este ejercicio es únicamente para aprendizaje y pruebas. No ejecute scripts contra ambientes de producción, sistemas críticos, repositorios empresariales, nóminas, expedientes de empleados, estudiantes, pacientes o carpetas compartidas sin autorización formal, pruebas previas, respaldos, control de cambios y cumplimiento de las políticas de ciberseguridad de su organización.
Objective
Identify null, blank, or whitespace-only values in a CSV file and replace them with a controlled default value such as N/A.
Objetivo
Identificar valores nulos, vacíos o compuestos solamente por espacios en un archivo CSV y reemplazarlos por un valor controlado como N/A.
Synthetic Data
Example input file: C:\Data\Departments.csv
Datos sintéticos
Archivo de entrada de ejemplo: C:\Data\Departments.csv
| EmployeeID | Name | Department | Status |
|---|---|---|---|
| 1001 | Juan Carballo | IT | Active |
| 1002 | Maria Perez | Active | |
| 1003 | Pedro Gomez | Active | |
| 1004 | Ana Ruiz | Finance | Active |
Base Example
Check whether the Department field is null, empty, or whitespace and replace it with N/A.
Ejemplo base
Validar si el campo Departamento está nulo, vacío o compuesto por espacios y reemplazarlo por N/A.
if ([string]::IsNullOrWhiteSpace($_.Department)) {
$_.Department = "N/A"
}Complete Script
Script completo
# PowerShell Advanced Topic 11
# Fill null or empty fields during CSV processing
$inputPath = "C:\Data\Departments.csv"
$outputPath = "C:\Data\Departments_Clean.csv"
$records = Import-Csv $inputPath
foreach ($record in $records) {
if ([string]::IsNullOrWhiteSpace($record.Department)) {
$record.Department = "N/A"
}
}
$records | Export-Csv $outputPath -NoTypeInformation
Write-Host "Cleanup completed."
Write-Host "Output file created:" $outputPathExpected Result
Resultado esperado
| EmployeeID | Name | Department | Status |
|---|---|---|---|
| 1001 | Juan Carballo | IT | Active |
| 1002 | Maria Perez | N/A | Active |
| 1003 | Pedro Gomez | N/A | Active |
| 1004 | Ana Ruiz | Finance | Active |
Real-World Applications
- Power BI data preparation
- SQL imports
- HR and payroll files
- Student information systems
- Customer and vendor master data
- Operational reporting
Aplicaciones reales
- Preparación de datos para Power BI
- Importaciones a SQL
- Archivos de recursos humanos y nómina
- Sistemas de información estudiantil
- Maestros de clientes y proveedores
- Reportes operacionales
Recommendations
- Use controlled default values consistently.
- Do not hide missing data when the blank value has analytical meaning.
- Document which fields were modified.
- Keep an original backup before cleaning files.
- Validate the output file before loading it into reporting tools.
Recomendaciones
- Use valores predeterminados controlados de forma consistente.
- No oculte datos faltantes cuando el valor en blanco tenga significado analítico.
- Documente qué campos fueron modificados.
- Mantenga una copia original antes de limpiar los archivos.
- Valide el archivo final antes de cargarlo en herramientas de reporte.