3

考虑以下:

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

输出:

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

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

输出:

-like 运算符不可交换。这是预期的吗?

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

4

1 回答 1

6

-Like行为不可交换 - 这是预期的。

几点:

  1. 评论中对上述讨论的总结: 交换性会引入歧义:'Hello.*' -like 'Hello?'- 这会返回true还是可交换false的?-like因此通配符只允许在右侧。如果它们出现在左侧大小上,则它们被视为文字 - 而不是通配符。

如果其他人有其他有效观点:请随时编辑或给出更好的答案。

于 2013-06-15T15:32:25.273 回答