Команда Powershell против форматирования переменных - PullRequest
2 голосов
/ 18 марта 2020

Я играю с некоторыми командами Powershell и внедряю их в сценарии.

Я заметил кое-что, о чем не могу найти много информации, несмотря на то, что искал несколько часов, так что, возможно, вы мне поможете здесь. Это также может быть отсутствие моего поиска неправильных вещей, извинения впереди, если это так.

Я экспериментирую здесь с манипулированием услугами через PS. А именно, пока что просто получаем TaskName . Вот что я делаю:

PS C:\WINDOWS\system32> Get-ScheduledTask -TaskName 'Adobe*' | Select -ExpandProperty TaskName

Output:
Adobe Acrobat Update Task
Adobe Flash Player NPAPI Notifier
Adobe Uninstaller

Это все хорошо. Однако, если я назначу эту команду переменной из скрипта powershell и запустю скрипт:

$TaskNames = Get-ScheduledTask -TaskName 'Adobe*' | Select -ExpandProperty TaskName

Output:
Adobe Acrobat Update Task Adobe Flash Player NPAPI Notifier Adobe Uninstaller

Поэтому у меня возникнут следующие вопросы:

  1. Почему форматирование меняется, когда присвоение команды переменной и вызов этой переменной, а не просто запись команды явно
  2. Как получить вызов переменной для форматирования вывода, как будто я просто набираю команду в первом примере

1 Ответ

0 голосов
/ 18 марта 2020
$TaskNames -join "`n" 

... он делает это, вероятно, потому, что один вывод объекта, а другой вывод массива. Если вы делаете $TaskNames.getType(), он должен сказать вам, что это массив. -join отображает массив, к которому присоединяется любой указанный вами символ.

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