PowerShell函数输出

时间:2018-05-03 18:46:52

标签: powershell

我有一个调用函数的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 :(得分:1)

听起来您的问题如下:

如果在函数的最终输出被分配给变量的函数内调用Format-Table,如何在控制台中显示Format-Table的输出?

从评论中可以清楚地看出,您不希望显着改变您的代码,并且您不想使用像Out-GridView这样的东西。

为了实现这一目标,您可以更改代码:

$users | ft

以下内容:

$users | ft | Out-Host

这会将Format-Table的结果打印到控制台,以及函数末尾的值

$user

将被分配给变量。

它在Windows 7,PowerShell版本4上进行了测试,在ISE中运行并作为脚本运行。