2017-03-03 82 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