Вывод функции PowerShell - PullRequest
0 голосов
/ 03 мая 2018

У меня есть сценарий PowerShell, который вызывает функцию и устанавливает результаты функции в переменную. Внутри функции я использую $variable | ft для отображения содержимого переменной в таблице и прошу пользователя выбрать число, соответствующее строке в таблице, на которую он хочет воздействовать. Затем я возвращаю эту переменную объекту, который вызвал функцию:

function getusers{
    $users = @()
    $i = 0
    do {
        $user = ""| select Row, Username, Firstname, lastname
        $user.row = $i
        $user.username ="user$i"
        $user.Firstname = "fname$i"
        $user.lastname = "lname$i"
        $users += $user
        $i += 1
    }while ($i -le 5)

    # Actual logic to build the contents of the $users variable here.
    $users | ft -AutoSize
    $selection = Read-Host "Select number for appropriate user"

    # Logic to determine if user selection is a valid number based on the number of rows in the variable.
    $user = $users[$selection]
    $user
}
$selecteduser = getusers

При вызове функции и сохранении результатов в переменной $users | ft не отображается в моей консоли. Если я просто вызываю функцию, не сохраняя результаты в переменной, консоль отображает результаты $users | ft.

1 Ответ

0 голосов
/ 04 мая 2018

Похоже, ваш вопрос следующий:

Как вы можете отобразить вывод Format-Table в консоли, когда вы вызываете Format-Table внутри функции, где окончательный вывод функции назначается переменной?

Из комментариев ясно, что вы не хотите существенно изменять свой код и что вы не хотите использовать что-то вроде Out-GridView.

Чтобы добиться этого с минимальными изменениями, вы можете изменить свой код:

$users | ft

на следующее:

$users | ft | Out-Host

Это выведет результаты Format-Table на консоль и значение в конце функции

$user

будет присвоено переменной.

Он был протестирован на Windows 7, PowerShell версии 4, как в ISE, так и в режиме сценария.

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