类似Powershell的算子不是可交换的

时间:2013-06-15 12:51:50

标签: powershell commutativity

请考虑以下事项:

$var = 'Now is the time'
if ($var -like 'Now*') { 'true' } else { 'false' }

输出: true

现在交换-like运算符的两个操作数:

if ('Now*' -like $var) { 'true' } else { 'false' }

输出: false

-like运算符不是commutative。这是预期的吗?

我在Win 7上,使用PS版本2.谢谢。

1 个答案:

答案 0 :(得分:6)

-Like表现不可交换 - 这是预期的。

有些观点:

  1. 评论中上述讨论的摘要:交换性会引入歧义:'Hello.*' -like 'Hello?' - 这会使truefalse回归-like吗?因此,只允许在右侧使用通配符。如果它们出现在左侧大小,则它们被视为文字 - 而不是通配符。
  2. 如果其他人有其他有效分数:随时编辑或给出更好的答案。