<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      📌 PowerShell 對象處理與篩選

      核心理念:PowerShell中一切皆對象,命令輸出的是結構化.NET對象而非純文本

      一、對象基礎概念

      1. 什么是對象?

      • 包含屬性(數據特征)和方法(可執(zhí)行操作)的數據結構
      • 查看對象結構
        Get-Process | Get-Member  # 顯示所有屬性和方法
        

      2. 核心對象屬性

      屬性 類型 說明
      Id Int32 進程ID
      ProcessName String 進程名稱
      CPU Double CPU占用時間(秒)
      WorkingSet Int64 內存占用量(字節(jié))
      StartTime DateTime 進程啟動時間

      二、核心對象處理Cmdlet詳解

      ?? 1. Select-Object - 屬性選擇器

      功能

      • 選擇對象屬性、限制輸出數量、創(chuàng)建計算屬性

      基本語法

      command | Select-Object [-Property] <string[]> [-First] [-Last] [-Unique]
      

      參數詳解

      參數 類型 說明 示例
      -Property String[] 指定要選擇的屬性(支持通配符* Select-Object Name, CPU
      -ExcludeProperty String[] 排除指定屬性 Select-Object * -ExcludeProperty VM
      -First Int32 選擇前N個對象 Select-Object -First 5
      -Last Int32 選擇最后N個對象 Select-Object -Last 3
      -Unique Switch 去除重復值 Select-Object ProcessName -Unique
      -Skip Int32 跳過前N個對象 Select-Object -Skip 10
      計算屬性語法 Hashtable @{Name="";Expression={}} 創(chuàng)建新計算屬性 Select-Object @{Name="MB";Expression={$_.WS/1MB}}
      # 完整示例:選擇前5進程并計算內存(MB)
      Get-Process | 
          Select-Object -First 5 -Property Name, 
              @{Name="Mem(MB)";Expression={[math]::Round($_.WorkingSet/1MB, 2)}}
      

      ?? 2. Where-Object - 條件過濾器

      功能

      基于條件篩選對象

      基本語法

      command | Where-Object { $_.Property -eq "Value" }
      

      參數詳解

      語法形式 說明 最佳場景
      腳本塊模式 { $_.Property -operator Value } 完整控制流 復雜條件
      簡化模式 Property -operator Value (PowerShell 3.0+) 簡單條件
      比較運算符 -eq, -ne, -gt, -lt, -ge, -le, -like, -match 所有場景
      邏輯運算符 -and, -or, -not 多條件組合

      比較運算符詳解

      運算符 說明 示例 注意
      -eq 等于 $_.Status -eq "Running" 不區(qū)分大小寫
      -ceq 區(qū)分大小寫等于 $_.Name -ceq "WinRM" 精確匹配
      -like 通配符匹配 $_.Name -like "*svc*" 支持*?通配符
      -match 正則表達式匹配 $_.Path -match "\.exe$" 使用正則表達式
      -in 包含于集合 $_.Id -in @(100, 200) PowerShell 3.0+
      # 多條件篩選示例
      Get-Service | 
          Where-Object {
              $_.Status -eq "Running" -and 
              $_.StartType -eq "Automatic" -and
              $_.Name -notlike "*#*"
          }
      

      ?? 3. Sort-Object - 數據排序

      功能

      對對象集合進行排序

      基本語法

      command | Sort-Object [-Property] <string> [-Descending]
      

      參數詳解

      參數 類型 說明 示例
      -Property String[] 指定排序屬性(支持多個屬性) Sort-Object Name, CPU
      -Descending Switch 降序排序(默認升序) Sort-Object WS -Desc
      -Unique Switch 去除重復項 Sort-Object PID -Unique
      -CaseSensitive Switch 區(qū)分大小寫排序 Sort-Object Name -CaseSensitive
      # 多級排序示例
      Get-ChildItem | 
          Sort-Object @{Expression={$_.Extension}; Ascending=$true}, 
                     @{Expression={$_.Length}; Descending=$true}
      

      ?? 4. ForEach-Object - 對象處理器

      功能

      對每個管道對象執(zhí)行操作

      基本語法

      command | ForEach-Object { 腳本塊 }
      

      參數詳解

      參數 類型 說明 示例
      -Process ScriptBlock 對每個對象執(zhí)行的腳本塊(主要參數) ForEach-Object { $_.Name }
      -Begin ScriptBlock 在處理前執(zhí)行的腳本塊(初始化操作) ForEach-Object -Begin { $count=0 }
      -End ScriptBlock 在處理后執(zhí)行的腳本塊(匯總操作) ForEach-Object -End {"Total: $count"}
      -MemberName String 調用每個對象的方法或屬性(PowerShell 4.0+) ForEach-Object -MemberName ToUpper
      # 完整處理流程示例
      Get-Process | 
          ForEach-Object -Begin {
              $totalMem = 0
              "開始處理進程..."
          } -Process {
              $totalMem += $_.WorkingSet
              "進程 $($_.Name) 使用內存: $($_.WorkingSet/1MB) MB"
          } -End {
              "總內存使用: $($totalMem/1GB) GB"
          }
      

      ?? 5. Group-Object - 數據分組

      功能

      按指定屬性分組對象

      基本語法

      command | Group-Object [-Property] <string>
      

      參數詳解

      參數 類型 說明 示例
      -Property Object 分組依據的屬性或表達式 Group-Object Status
      -AsHashTable Switch 返回哈希表而非分組對象 Group-Object Name -AsHashTable
      -AsString Switch 將屬性值視為字符串(非對象) Group-Object ProcessName -AsString
      -NoElement Switch 不包含原始對象(僅統(tǒng)計信息) Group-Object Company -NoElement
      # 高級分組示例
      Get-Process | 
          Group-Object @{Expression={$_.PriorityClass}} | 
          Select-Object Count, Name, 
              @{Name="TotalMem(GB)";Expression={($_.Group | Measure-Object WorkingSet -Sum).Sum / 1GB}}
      

      ?? 6. Measure-Object - 數據統(tǒng)計

      功能

      計算對象的數值屬性統(tǒng)計信息

      基本語法

      command | Measure-Object [-Property] <string> [-Sum] [-Average] [-Maximum] [-Minimum] [-Line] [-Word] [-Character]
      

      參數詳解

      參數 類型 說明 示例
      -Property String 要統(tǒng)計的屬性(默認:Length Measure-Object -Property CPU
      -Sum Switch 計算總和 Measure-Object -Sum
      -Average Switch 計算平均值 Measure-Object -Average
      -Maximum Switch 獲取最大值 Measure-Object -Maximum
      -Minimum Switch 獲取最小值 Measure-Object -Minimum
      -StandardDeviation Switch 計算標準差(PS6+) Measure-Object -StandardDeviation
      -AllStats Switch 計算所有統(tǒng)計信息(PS6+) Measure-Object -AllStats
      # 完整統(tǒng)計示例
      Get-ChildItem -File | 
          Measure-Object -Property Length -Sum -Average -Minimum -Maximum -StandardDeviation |
          Select-Object Count, 
              @{Name="Size(MB)";Expression={[math]::Round($_.Sum/1MB, 2)}},
              @{Name="Avg(MB)";Expression={[math]::Round($_.Average/1MB, 2)}},
              Min, Max, StandardDeviation
      

      三、組合應用實戰(zhàn)(增強版)

      案例1:內存占用Top 5進程(帶完整屬性)

      Get-Process | 
          Where-Object {$_.WorkingSet -gt 100MB} |
          Sort-Object WorkingSet -Descending | 
          Select-Object -First 5 -Property Name, Id, 
              @{Name="CPU(s)";Expression={$_.CPU}},
              @{Name="Memory(MB)";Expression={[math]::Round($_.WorkingSet/1MB, 2)}},
              @{Name="StartTime";Expression={$_.StartTime.ToString("yyyy-MM-dd HH:mm")}}
      

      案例2:磁盤空間分析報告

      Get-ChildItem -Path "C:\Projects" -Recurse -File |
          Group-Object Extension -NoElement |
          Sort-Object Count -Descending |
          Select-Object @{Name="FileType";Expression={$_.Name}}, 
              Count, 
              @{Name="Percentage";Expression={[math]::Round(($_.Count/$total)*100, 1)}} |
          Export-Csv -Path "FileTypeReport.csv" -NoTypeInformation
      

      案例3:服務狀態(tài)監(jiān)控儀表盤

      $services = Get-Service
      
      # 生成狀態(tài)報告
      $report = $services | 
          Group-Object Status, StartType -AsHashTable -AsString |
          ForEach-Object {
              [PSCustomObject]@{
                  Status = $_.Key[0]
                  StartType = $_.Key[1]
                  Count = $_.Value.Count
                  Examples = ($_.Value.Name | Select-Object -First 3) -join ", "
              }
          }
      
      # 顯示并導出
      $report | Sort-Object Status, StartType | Format-Table -AutoSize
      $report | Export-Clixml -Path "ServiceStatus.xml"
      

      四、性能優(yōu)化技巧

      1. 高效過濾策略

      # 優(yōu)先使用原生過濾(比Where-Object快10倍)
      Get-ChildItem -Filter *.log -Recurse  # ?? 推薦
      
      # 避免全量處理后再過濾
      Get-Process | Where-Object {$_.Name -eq "chrome"}  # ? 低效
      Get-Process -Name "chrome"  # ?? 高效
      

      2. 屬性選擇優(yōu)化

      # 提前移除不需要的屬性
      Get-Service | 
          Select-Object Name, Status, DisplayName |  # 減少后續(xù)管道負載
          Where-Object Status -eq "Running"
      

      3. 并行處理(PowerShell 7+)

      # 使用ForEach-Object -Parallel加速處理
      Get-ChildItem *.log | 
          ForEach-Object -Parallel {
              $content = Get-Content $_.FullName
              if ($content -match "ERROR") {
                  "Error found in: $($_.Name)"
              }
          } -ThrottleLimit 5
      

      五、命令速查手冊

      Cmdlet 核心參數 使用頻率 典型用例
      Select-Object -Property, -First, -Skip, -Unique, 計算屬性 ????? 選擇特定屬性/限制結果集
      Where-Object -eq, -like, -match, -and, -or ????? 條件過濾
      Sort-Object -Property, -Descending, -CaseSensitive ???? 結果排序
      ForEach-Object -Process, -Begin, -End, -Parallel ????? 遍歷處理對象
      Group-Object -Property, -AsHashTable, -NoElement ??? 數據分組
      Measure-Object -Sum, -Average, -Min, -Max, -AllStats ??? 數值統(tǒng)計

      ?? 專業(yè)提示:使用 Get-Help <Cmdlet> -Full 查看完整參數文檔,或 Get-Help <Cmdlet> -Examples 查看實用示例

      總結:常用對象處理 Cmdlet 快速對照表

      Cmdlet 功能描述
      Select-Object 選擇屬性、限制返回數量
      Where-Object 根據條件篩選對象
      Sort-Object 對對象排序
      ForEach-Object 對每個對象執(zhí)行自定義操作
      Get-Member 查看對象結構(屬性/方法)
      posted @ 2025-06-29 19:24  kyle_7Qc  閱讀(124)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美成人看片黄A免费看| 波多野结系列18部无码观看AV| 成人无码一区二区三区网站| 国产一区二区三区导航| 国产精品护士| 九九日本黄色精品视频| 日韩精品卡一卡二卡三卡四| 国产av永久无码天堂影院| 亚洲av第三区国产精品| 亚洲国产精品成人av网| 亚洲国产成人无码av在线播放| 亚洲色欲色欲www| 少妇尿尿一区二区在线免费| 精品国产迷系列在线观看| 亚洲精品色哟哟一区二区| 麻豆国产va免费精品高清在线| 精品国产一区av天美传媒| 亚洲精品一区国产精品| 又大又黄又粗高潮免费| 丰满人妻无码∧v区视频| 欧美日韩国产va在线观看免费 | 日韩本精品一区二区三区| 国产成人午夜精品永久免费| 中国亚州女人69内射少妇| 国内精品久久久久影院日本| 亚洲日本精品一区二区| 亚洲人成电影在线天堂色| 国产亚洲欧美在线观看三区| 日韩精品一区二区三区久| 成人午夜在线播放| av在线播放日韩亚洲欧| 少妇被粗大的猛进69视频 | 激情综合五月网| 国产精品啪| 国产一区二区三区我不卡| 久久精品囯产精品亚洲| 亚洲偷偷自拍码高清视频| 建阳市| 国产高清精品一区二区三区 | 国产老熟女国语免费视频| 在线播放国产精品三级网|