我有一个调用函数的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
的结果。
答案 0 :(得分:1)
听起来您的问题如下:
如果在函数的最终输出被分配给变量的函数内调用Format-Table,如何在控制台中显示Format-Table的输出?
从评论中可以清楚地看出,您不希望显着改变您的代码,并且您不想使用像Out-GridView这样的东西。
为了实现这一目标,您可以更改代码:
$users | ft
以下内容:
$users | ft | Out-Host
这会将Format-Table的结果打印到控制台,以及函数末尾的值
$user
将被分配给变量。
它在Windows 7,PowerShell版本4上进行了测试,在ISE中运行并作为脚本运行。