Select-Object выводит непосредственно в переменную - PullRequest
0 голосов
/ 05 марта 2019

Я собираю сценарий, чтобы перейти на группу компьютеров домена и скопировать файл.

Мой код:

Get-ChildItem -Path \\$computer -Filter $filename -Recurse -ErrorAction SilentlyContinue | Select-Object Directory -outvariable $directory

Теперь моя проблема заключается в результате, которыйв переменной хранится @{Directory=\\Computer\dir

Как мне сделать так, чтобы она выводила в переменную только \\Computer\dir

Любая помощь или руководство приветствуются

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

По сути, ваша проблема является дубликатом Как мне записать значение одного свойства объекта? (среди прочего) - короче: используйте -ExpandProperty <propName> вместо просто[-Property] <propName> для извлечения только свойства value вместо создания пользовательского объекта со свойством с таким именем .

Кроме того, ваша проблемаявляется то, что вы должны передать простую переменную имя - без $ сигил - -
-OutVariable
:

Select-Object -ExpandProperty Directory -OutVariable directory

То есть передатьпросто от directory до -OutVariable, чтобы заполнить переменную $directory.
В отличие от этого, -OutVariable $directory будет заполнять переменную с именем , содержащую в переменной $directory.

0 голосов
/ 05 марта 2019

Select-Object по умолчанию создает объект, который имеет выбранные вами свойства.Таким образом, в вашем случае вы получите объект с единственным свойством с именем Directory.Если вы выбираете только одно свойство, вы можете использовать параметр ExpandProperty для «продвижения», из-за отсутствия лучшего слова, свойства объекта.

Get-ChildItem -Path \\$computer -Filter $filename -Recurse -ErrorAction SilentlyContinue `
| Select-Object -ExpandProperty Directory -outvariable $directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...