[英]Powershell: Haskell-like $ (apply) operator?
我經常開始輸入azure命令,然后需要訪問一個屬性,最后得到像這樣的命令
(($a|get-something).prop1|get-otherstuff).prop2
有沒有一種優雅的方式(或黑客)寫它更像像haskell,以避免必須跳到開頭paranthesis線的開頭? 我在想
$a | get-someArray $ [0] | get-details $ .prop2
為了.
- 可訪問的屬性,我到目前為止:
function $ {param([parameter(ValueFromPipeline)] $x, [parameter(Position=1)]$y)$x|Select-Object -ExpandProperty $y}
允許我做expr |$ prop | expr |$ prop
expr |$ prop | expr |$ prop
而不是((expr).prop) | expr).prop
((expr).prop) | expr).prop
。
對於陣列訪問,我們可以做到
function § {param([parameter(ValueFromPipeline)] $x, [parameter(Position=1)]$y)$x[$y]}
因此,我們可以做到這一點: arrayexpr |§ 0 |$ prop
你有更多的想法可以讓我們在打字之前不去思考嗎?
我真的不太了解Haskell,但是
$a | Get-Something | % prop1 | Get-OtherStuff | % prop2
也許?
當然,它很容易破損,你可能仍需要括號來澄清哪些結果以什么方式分組。 但ForEach-Object
是一種通過管道訪問屬性值的便捷方式,遠遠超過Select-Object -ExpandProperty
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.