【发布时间】:2019-03-09 14:09:32
【问题描述】:
这是一个高级别的问题,因为我不在办公室,而是在家里,所以细节可能并不准确。
我有一个通过管道接受变量的函数:
get-csv | myfunc
管道源是 .csv 文件中的字段。
如何定义变量并通过管道输入myfunc()? HashTable会好吗?
$my_pipe_variables = @{ Color = ‘Red’; Doors = 4; Convertible = $false}
$my_pipe_variables | myfunc
那会是正确的语法吗?
更新:
我终于有时间尝试了,但它对我不起作用,因为我的myfunc 直接通过$_ 访问管道变量。这是演示:
function showThem { echo Color: $_.Color }
> [pscustomobject]@{ Color = ‘Red’; Doors = 4; Convertible = $false} | showThem
Color:
如何使它适用于myfunc,它直接通过$_ 访问管道变量?
【问题讨论】:
-
@mklement0,我唯一的意图是将读取 .csv 替换为从变量提供,所有其余部分都陷入黑暗。对于
Color = ‘Red’; Doors = 4; Convertible = $false的示例.csv 输入,请忽略并告诉我正确的做法。谢谢。 -
您可以将哈希表用于splatting 函数的参数,而不是管道。附:摆脱卷曲的“智能引号”并使用直引号。
-
感谢@Theo 的链接。它可能不适合我的具体情况,因为我的
myfunc()直接通过$_.访问管道变量,而不是定义Params。
标签: powershell object pipe pscustomobject