【发布时间】:2018-02-06 09:04:48
【问题描述】:
This answer 包含类似 Powershell 的代码,它拆分 $env:path,应用过滤器并将结果放在一起,将其存储在 $env:path 中。
$path = ($path.Split(';') | Where-Object { $_ -ne 'ValueToRemove' }) -join ';'
我正在阅读这段代码,然后突然出现了一个狂野的-join ';'。这是如何运作的?这背后的概念是什么?我希望(<expression) 最终会成为某个对象,但是这样会读取<object> -join ';',所以连接部分仍然是一些独立的令牌。它是如何评估的?我可以看到它显然做了“正确的事情”,但是它是如何以及为什么起作用的呢? Powershell 究竟如何评估这条线?在我看来,这就像非常黑暗的魔法。
【问题讨论】:
-
“突然,一个狂野的
-join ';'出现了。”
标签: arrays powershell operators evaluation