Поскольку поля кажутся разделенными различным количеством пробелов , проще всего использовать унарную форму -split
, оператор разделения строк :
# Sample input.
$line = @'
8 Auto Unknown -1 Class 4 On Good 3.29 47.75 68.96
'@
# Split the line into an array of fields by whitespace.
$fields = -split $line
# Output the result.
$fields
Если вы дополнительно хотите , выведите типы данных полей , просто посмотрев, могут ли они быть преобразованы в целое число ([int]
) или значение с плавающей точкой ([double]
):
foreach ($i in 0..($fields.Count-1)) {
if ($newValue = $fields[$i] -as [double]) { $fields[$i] = $newValue }
if ($newValue = $fields[$i] -as [int]) { $fields[$i] = $newValue }
}