2021-01-25

Select-String:關鍵字

-Pattern 參數
-SimpleMatch 參數
-CaseSensitive 參數
取得字串陣列
PS R:\> $arrFullName = (dir *.jpg).FullName
PS R:\> $arrFullName
R:\1.jpg
R:\2.jpg
R:\3.jpg
R:\4.jpg
R:\5.jpg
PS R:\>

-Pattern 參數

一個關鍵字
PS R:\> $arrFullName | Select-String -Pattern '2\.jpg'

R:\2.jpg


PS R:\>
二個關鍵字
PS R:\> $arrFullName | Select-String -Pattern '2\.jpg','3\.jpg'

R:\2.jpg
R:\3.jpg


PS R:\>
另一種寫法
PS R:\> $p = '2\.jpg','3\.jpg'
PS R:\> $arrFullName | Select-String -Pattern $p

R:\2.jpg
R:\3.jpg


PS R:\>
使用 Regex的 | 符號
PS R:\> $arrFullName | Select-String -Pattern '2\.jpg|3\.jpg'

R:\2.jpg
R:\3.jpg


PS R:\>

-SimpleMatch 參數

Pattern參數值:預設是Regex
PS R:\> $arrFullName | Select-String -Pattern '2\.jpg'

R:\2.jpg


PS R:\>
使用 SimpleMatch參數
符號沒有特殊意義,照著字面上的字去尋找
PS R:\> $arrFullName | Select-String -Pattern '2.jpg' -SimpleMatch

R:\2.jpg


PS R:\>

-CaseSensitive 參數

預設:不區分大小寫
PS R:\> $arrFullName | Select-String -Pattern '2\.jpg'

R:\2.jpg


PS R:\> $arrFullName | Select-String -Pattern '2\.JPG'

R:\2.jpg


PS R:\>
-CaseSensitive 參數:區分大小寫
結果:沒反應
PS R:\> $arrFullName | Select-String -Pattern '2\.JPG' -CaseSensitive
PS R:\>
在Regex裡面設定「不區分大小寫」
PS R:\> $arrFullName | Select-String -Pattern '(?i)2\.JPG'

R:\2.jpg


PS R:\> $arrFullName | Select-String -Pattern '(?i)2\.JPG' -CaseSensitive

R:\2.jpg


PS R:\>

沒有留言:

張貼留言