我有一个向其传递哈希表的函数。在我想要的功能中 1)通过 Write-Host 在屏幕上显示文本;2) 一次显示哈希表的内容——提供通常的两列“名称”/“值”哈希表显示。3) 让函数返回$true
or $false
。
MyFunction $MyHashTable
在函数内:
param (
[hashtable]$TheHashTable
)
# Sundry things here and then:
write-host "Some information to display on-screen`n"
# and then:
$TheHashTable
后者的预期结果是这样的:
Some information to display on-screen
Name Value
---- -----
a b
c d
最终:
return $true # If what I'm doing worked; otherwise, $false
如果我调用如上所示的函数,我会看到通过Write-Host
屏幕显示的文本,以及哈希表内容的两列显示 -以及文本True
或False
屏幕,具体取决于函数返回的内容。
如果我这样称呼它:
$myResult = MyFunction $MyHashTable
...我捕获了函数的返回值$myResult
——但是哈希表内容的显示被抑制了。如果我这样做,它也会被抑制:
if ( (MyFunction $MyHashTable) -eq $true ) {
# do something
} else {
# do something different
}
有没有办法
- 确保哈希表内容的显示,无论函数如何调用;
- 在任何情况下,抑制屏幕显示
True
和False
执行Return
语句的时间?