Вывод переменной Powershell - PullRequest
0 голосов
/ 31 января 2019

[Использование ISE]

У меня есть: '$($udvTest | Select ProcessName -Last 1)', где $udvTest содержит 5 процессов в качестве членов, полученных из Get-Process.

Я получаю следующие 3 строки:

ProcessName
-----------
svchost

Но я хочу только строку "svchost" в качестве вывода (например, для дальнейшей обработки).Что я упускаю из виду, что эта маленькая просьба от PS кажется настолько отвратительной?

Ответы [ 4 ]

0 голосов
/ 31 января 2019

Спасибо большое!Теперь я вижу, что мне нужно дать свойство ProcessName, чтобы получить его чистое значение.Best!

0 голосов
/ 31 января 2019

Чистый способ Powershell будет таким:

Get-Process | Select-Object -ExpandProperty ProcessName -Last 1

или для вашего конкретного примера:

$udvTest | Select-Object -ExpandProperty ProcessName -Last 1
0 голосов
/ 31 января 2019

«PS кажется таким отвратительным»

На самом деле тот факт, что вы видите информационную таблицу, является подсказкой к одной из лучших вещей в PowerShell: объектам.Это делает вашу жизнь намного проще, чем прямое манипулирование текстом.

В любом случае, один из способов получить необходимую информацию:

$udvTest[-1].ProcessName

Поскольку $udvTest - это массив, вы можете индексироватьв него, чтобы найти предмет, который мы хотим.Если вы предоставите отрицательный индекс, PowerShell будет считать от конца до начала, поэтому [-1] означает взять последний элемент.

.ProcessName - это еще один индикатор, который вы имеете дело с объектами и получитезначение свойства ProcessName для вас.

0 голосов
/ 31 января 2019
(Get-Process | Select-Object -Last 1).ProcessName

подойдет или для вашего примера:

$(($udvTest | Select -Last 1).ProcessName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...