首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

PowerShell 深度探索(四):物件導向核心、格式化輸出與通用參數

     編輯:關於.NET

PowerShell 物件模型

PowerShell 以物件為核心,輸出非純文字而是結構化物件,擁有屬性(資訊)與方法(行為)。如同「燈泡」物件有顏色/功率屬性,及開關方法。

Get-Member:探索物件結構

Get-Service | Get-Member                    # 所有成員
Get-Service | Get-Member -MemberType Property  # 僅屬性
Get-Service | Get-Member -MemberType Method    # 僅方法
Get-Service 成員列表

實戰範例:尋找指定日期後寫入的檔案

Get-ChildItem -Path d:\ -Recurse | Where-Object { $_.LastWriteTime -gt "01/01/2010" }
  • LastWriteTime 為 System.DateTime 型別,支援 -gt(大於)比較
  • 管道傳遞物件而非文字,無需額外解析轉換
LastWriteTime 屬性定義

格式化輸出

Format-* 系列 Cmdlet 控制顯示模式:

Get-Command Format-*  # 列出所有格式化命令
Format 命令列表

常用格式化範例


Get-ChildItem C:\Windows | Format-Table
Get-ChildItem C:\Windows | Format-Table -AutoSize
Get-ChildItem C:\Windows | Format-Custom
Get-ChildItem C:\Windows | Format-List
Get-ChildItem C:\Windows | Format-List -Property FullName
Get-ChildItem C:\Windows | Format-Wide

Get-ChildItem C:\Windows -Recurse | Format-List FullName,CreationTime,LastWriteTime
Get-ChildItem C: | Format-Wide -Column 3

進階輸出與匯出


Get-Process | Group-Object Company
Get-EventLog System | Group-Object EventID | Sort-Object Count -Descending
Get-Process | ConvertTo-Html | Out-File "Processes.html"
Get-Process | Export-Csv Processes.csv
Invoke-Item Processes.html   # 開啟 HTML
Invoke-Item Processes.csv    # 用 Excel 開啟 CSV
CSV 匯出結果 Excel 開啟 CSV

通用參數

幾乎所有 Cmdlet 共享的標準參數:

參數說明別名
-Confirm執行前提示確認-
-Debug提供除錯資訊-
-ErrorAction錯誤處理:Continue/Stop/...-ea
-ErrorVariable錯誤存入指定變數-ev
-OutVariable輸出存入指定變數-ov
-OutBuffer管道緩衝物件數-ob
-Verbose顯示詳細資訊-vb
-WhatIf模擬執行,不實際執行-

實戰演示


Set-ExecutionPolicy Unrestricted -WhatIf   # 模擬:顯示將會發生的事
Set-ExecutionPolicy Unrestricted -Confirm  # 互動確認:Y/A/N/L/S/?

S(Suspend)會進入暫停模式(提示符變 >>),可輸入指令檢查狀態,再 exit 返回確認提示。

WhatIf 模擬 Confirm 提示 Suspend 模式示範

善用 Tab 自動完成與 Get-Help cmdlet -Full 學習參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved