PowerShell: Eliminar caracteres especiales

Para generar nombres de usuario o direcciones de correo electrónico no sólo es buena idea usar cadenas de texto sin acentos ni caracteres locales, es también importante asegurarnos que no hay caracteres especiales.

¿Qué son los "Caracteres especiales"?

Los "caracteres especiales" son caracteres que no se pueden usar en un nombre de usuario. El carácter especial más común es la barra espaciadora, pero tampoco puede usar ninguno de estos caracteres:

^ & { }  / \ + = ( ) [ ] ; : , " ' `

¿Por qué están bloqueados los caracteres especiales?

Estos caracteres están bloqueados porque tienen un significado especial en PowerShell y otros lenguajes de programación: Por ese motivo los llamamos "especiales". 

¿Cómo eliminamos los caracteres especiales?

Podemos utilizar los cmd-lets: Get-Content y Set-Content

PowerShell: Eliminar caracteres especiales

Mediante el método -replace eliminaremos cualquier carácter que no sea alfanúmerico:

Get-Content -Path <file> | foreach-object {$_ -replace "[^a-zA-Z(0-9)]",""} | Set-Content <file>

El código leerá el contenido de un archivo y eliminará cualquier carácter que no esté en un rango de la A a la Z o del 0 al 9. 

Después usa el cmdlet Set-Content para escribir esos resultados en otro archivo.

Mediante esta simple línea de código podremos limpiar con seguridad nuestros archivos de caracteres especiales.

El autor de este post es: Pol Padrisa

 


No hay comentarios:

Publicar un comentario