Hay que decir que esta entrada es de mi compi Roberto, así todo el mérito es suyo…
El otro día estaba intentando pasar mis SMS de mi Samsung Galaxy Note 2 a la BlackBerry Z10. Y antes de encontrar la aplicación SMSBackup de la que hemos hablado en otro post, a lo que llegué a la conclusión es que el formato con el que exportaba en las aplicaciones Android que había utilizado (SMS to text) era diferente a los que utilizaba BlackBerry para almacenar los SMS.
Para que entendáis de lo que hablo:
FORMATO ANDROID (en dos columnas): 16/04/2013;13:30:48
FORMATO BLACKBERRY (una columna): abr 16, 2013 13:30:48 PM
La hora no fue un problema su modificación, abrimos el archivo con Excel, cambiamos el formato de la columna de la hora por el que nos interesa:
1 |
<strong>13:30:48 --> </strong><strong>13:30:48 PM</strong> |
Intenté con Excel y CSVed modificar el resto de valores de una forma rápida y cómoda, pero hay que utilizar funciones y como Roberto ya se había pegado con PowerShell con algo parecido, en unos minutos me hizo el script para cambiar las 1881 líneas de mis SMS´s.
¿Qué es PowerShell? Básicamente es la antigua consola de MSDOS que arrastraban todas las versiones de Windows pero super vitaminada. No tan potente como la de Linux, pero se va acercando.
Para lanzarla en Windows 7 Profesional, pulsamos Inicio –> Ejecutar –> escribimos Powershell
Yo he creado una carpeta temporal con un subdirectorio fechas, pero podéis colocar los datos y el script donde quieras:
1 |
<strong>mkdir c:\temp\fechas</strong> |
Tendréis que crear un fichero TXT donde se ubicarán todas las fechas que queremos modificar. Exportarlas desde Excel a un TXT (simplemente Guardar como…):
Luego en la misma carpeta creáis un fichero con el bloc de notas que se llame scriptfechas.ps1, que se encargará de la modificación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$fechas = Get-Content c:\temp\fechas\fechas.txt foreach ($fecha in $fechas) { $posicion1 = $fecha.IndexOf("-") $dia = $fecha.Substring(0,$posicion1) $resto = $fecha.Substring($posicion1+1) $posicion2 = $resto.IndexOf("-") $mes = $resto.Substring(0,$posicion2) $ano = $resto.Substring($posicion2+1) $fecha_nueva = "$mes $dia, 20$ano" Write-Output $fecha_nueva } |
Desde el powershell lanzamos el script con el comando .\scriptfechas.ps > fechasmodificadas.txt con esto exportamos los resultados a otro fichero:
Si es la primera vez que ejecutáis un script es posible que la política de Windows 7 no te permita su ejecución. Para evitar ese problema habilitamos la política:
1 |
set-executionpolicy remotesigned |
Ya tenemos las fechas cambiadas y ya los podríamos editar en un excel como texto:
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?