2017-03-03 87 views
0

我刚开始学习PS。有人可以解释我下面的例子(它的原因如果可能的话):字符串内的通配符行为奇怪

Get-Command s*rvice 

给像Set-ServiceStart-Service等安打而不是命令,如New-ServiceRestart-Service

+5

这是因为's * rvice'匹配以's'开头并以'rvice'结尾的cmdlet名称。 'New-Service'和'Restart-Service'都不以's'开头。您可能需要'Get-Command * service'或'Get-CommandNoun * s * rvice'。 –

回答

0
  1. 你”重新想象*表示单个字符,但它可以匹配任意数量的字符。 s[e]rvices[eeeeee]rvices[tart-se]rvice

  2. 您正在阅读s*rvice将完全匹配您键入的文本,并改变只有在通配符。但你期望它匹配New-Service,就好像它在开始和结束处有通配符,如*s*rvice* - 但它不会,它只会匹配你输入的模式;开始必须以s开头,结束必须以e结尾。

+0

谢谢,我想我已经在脑海里分裂了结果。 :) Ansgar也谢谢你,朋友。 – gosko