Es normal. Cuando pones $a[0..0] estas pidiendo el elemento 0 de un array (en este caso cada elemento del array es una línea de texto). Por cierto, creo recordar que ya te dije que $a[0..0] es lo mismo que $a[0], y es mejor que lo pongas de la segunda
manera por simplicidad.
Para separar esos datos tienes el método SubString de los objetos System.String. El primer parámetro indica desde qué caracter empieza la subcadena a extraer y el segundo parámetro la longitud de lka subcadena. En el siguiente
ejemplo extraemos primero la fecha completa y luego el año, mes y día:
PS D:> $a = "2010-03-01-00.00.0000SERVIDOR!"
PS D:\> $a.Substring(0,10)
2010-03-01
PS D:\> $a.Substring(0,4)
2010
PS D:\> $a.Substring(5,2)
03
PS D:\> $a.Substring(8,2)
01
Si tienes la cadena como elemento de un array, la idea es la misma, pero poniendo el índice del array y después el método:
$a = "2010-03-01-00.00.0000SERVIDOR!","2010-03-02-00.00.0000SERVIDOR!"
For($i=0;$i -lt $a.Count;$i++)
{
"Línea $([string]$i): $($a[$i])"
"Fecha: $($a[$i].SubString(0,10))"
"Año: $($a[$i].SubString(0,4))"
"Mes: $($a[$i].SubString(5,2))"
"Día: $($a[$i].SubString(8,2))"
"=============================="
}
El anterior script muestra:
Línea 0: 2010-03-01-00.00.0000SERVIDOR!
Fecha: 2010-03-01
Año: 2010
Mes: 03
Día: 01
==============================
Línea 1: 2010-03-02-00.00.0000SERVIDOR!
Fecha: 2010-03-02
Año: 2010
Mes: 03
Día: 02
==============================
Un saludo
Fernando Reyes [MS MVP]
MCSA 2000/2003
MCSE 2000/2003
MCITP EnterpriseAdministrator
Web:
http://freyes.svetlian.com
Blog:
http://urpiano.wordpress.com
RSS:
http://urpiano.wordpress.com/feed/
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)