PowerShell - извлечение текста в переменные (RegEx?) - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть сценарий PS, который получает некоторую информацию о состоянии с коммутатора. Вывод выглядит так:

     8    Auto       Unknown        -1  Class 4      On     Good      3.29       47.75        68.96

Теперь мне нужно присвоить эти строки переменным для дальнейшей обработки. Я предполагаю, что RegEx будет лучшим (только?) Способом сделать это, но я не имею ни малейшего представления о том, как этого добиться, поэтому любое предложение будет с благодарностью получено.

Приветствия,

B.

1 Ответ

2 голосов
/ 07 апреля 2020

Поскольку поля кажутся разделенными различным количеством пробелов , проще всего использовать унарную форму -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 }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...