文章目錄
PowerShell 基本語法筆記 2
自從開始使用 PowerShell 來與 Jenkins 2 整合進行 CI 與 CD 的流程之後,有愈來愈多需求出現,原本的文章 powershell 基本語法筆記 的內容無法負荷,因此補充一下其他語法
if 判斷式
比較運算子需加上
-
來表示比較運算子 說明 -eq 相等 -ne 不相等 -ge 大於等於 -gt 大於 -lt 小於 -le 小於等於 -like 萬用字元比對,有特定字元 -notlike 萬用字元比對,排除特定字元 -match Regular expression 比對,選擇符合的 -notmatch Regular expression 比對,排除符合的 - 預設比較不分大小寫
- 可以在比較子前加上
c
強制區分大小寫 - 範例
if( 1 -eq 2 )
邏輯運算子需加上
-
來表示邏輯運算子 說明 -and and -or or -not
!not -xor xor - 範例
if( (1 -eq 1) -or (2 -eq 2))
- 範例
資料夾檔案處理
取得資料夾下物件
Get-ChildItem -Path $folder
取得資料夾所有物件(包含子資料夾)
Get-ChildItem -Path $folder –Recurse
取得資料夾特定類型檔案(*.txt)
Get-ChildItem -Path $folder -Filter *.txt –Recurse
pipeline
- 可以持續串連
- 製造順序性作業
過濾資料(e.g.過濾檔名為 ‘A’ 開頭的 json 檔)
Get-ChildItem -Path $folder -Filter *.json –Recurse| Where-Object {$_.Name.StartsWith("A")
輸出資料(e.g.輸出物件內容)
Get-ChildItem -Path $folder | Out-Host
處理資料(e.g.取得檔名)
Get-ChildItem -Path $folder -Filter *.json –Recurse| ForEach-Object -Process {$_.BaseName}
parse xml
範例 xml
<YowkoProfile> <Name>yowko</Name> <Yowko.Tel>0912345678</Yowko.Tel> <Accounts> <Site> <Url>http://tw.yahoo.com/</Url> <UserName>yowkotsai</UserName> <Password>pa$$w0rd</Password> </Site> <Site> <Url>http://www.google.com/</Url> <UserName>yowkotsai</UserName> <Password>pa$$w0rd</Password> </Site> </Accounts> </YowkoProfile>
將檔案轉為 xml object
[xml]$xmldata = get-content "C:\yowkoprofile.xml"
依階層取值
Name
$xmldata.YowkoProfile.Name
element 中有
.
,使用''
來取值Yowko.Tel
$xmldata.YowkoProfile.'Yowko.Tel'
使用 index 來取值
Site
$xmldata.YowkoProfile.Accounts.Site[0]
Url
$xmldata.YowkoProfile.Accounts.Site[0].Url
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-28
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。