Day-3 課程 使用 PowerShell 進行自動化管理(一)

恆逸課程:Microsoft - AZ040 使用Windows PowerShell進行自動化管理

前言:
這邊把自己所聽所學所吸收的知識轉換成自己的方式呈現,一定會有疏漏或沒聽懂沒聽到沒理解的地方。
我依然停留在見山是山的境界。

上一篇:Day-2 課程 使用 PowerShell 進行自動化管理(二)

下一篇:Day-3 課程 使用 PowerShell 進行自動化管理(二)


第三天上午上半場主要講的內容如下

  1. What is the pipline?
  2. Measuring objects
  3. Selecting a subset of objects

1. What is the pipline?

管道(Pipeline):
管道 | 可以將一個指令的輸出傳遞給另一個指令,實現更複雜的操作。

雖然用英文講會更精確,但在很多時候,不得不用中文解釋時,我更喜歡叫它「水管」
不知道為什麼。

Pipeline是一種功能強大的概念,它允許我們將一個命令的輸出直接作為另一個命令的輸入。
這使得我們可以通過組合不同的命令,以更簡潔和有效的方式處理數據。

個人舉一個例子:

將hello, world 字母由小寫轉換成大寫,如果不用水管的話,就得寫這麼多

$originalString = "hello, world"
$uppercaseString = ForEach-Object { $_.ToUpper() } -InputObject $originalString
$uppercaseString

那如果用水管呈現的話,就簡單乾淨的多

"hello, world" | ForEach-Object { $_.ToUpper() }
raw-image

2. Measuring objects

測量(Measuring)對象通常是使用 Measure-Object cmdlet 來完成的。

這個 cmdlet 用於計算對象集合的統計信息,例如數量、總和、平均值、最小值和最大值。

範例:

這邊拿C:\底下三個文件做測試
使用 Get-ChildItem 檢索文件對象,並測量 Length 屬性的統計信息

Get-ChildItem -File | Measure-Object -Property Length -Sum -Average -Maximum -Minimum
raw-image

統計 「DayOne.txt」、「Setup-20533.ps1」、「新文字文件.txt」測量結果為

Count(數量) : 3 
Average(平均值) : 551
Sum(總和) : 1653
Maximum(最大值) : 866
Minimum(最小值) : 86
Property(屬性) : Length

Length 的單位是 bytes,如果需要把它轉換比較容易查看的方式

個人補充:

$result = Get-ChildItem -File | Measure-Object -Property Length -Sum -Average -Maximum -Minimum

# 將結果格式化成帶有單位的字符串
$maxSizeWithUnit = "{0} bytes" -f ($result.Maximum)
$minSizeWithUnit = "{0} bytes" -f ($result.Minimum)
$avgSizeWithUnit = "{0} bytes" -f ($result.Average)
$sumSizeWithUnit = "{0} bytes" -f ($result.Sum)

# 顯示帶有單位的結果
Write-Host "Count : $($result.Count)"
Write-Host "Average : $avgSizeWithUnit"
Write-Host "Sum : $sumSizeWithUnit"
Write-Host "Maximum : $maxSizeWithUnit"
Write-Host "Minimum : $minSizeWithUnit"
Write-Host "Property : $($result.Property)"
raw-image

OS:我發現講師蠻喜歡用「Powershell命令列 」的,我個人還是喜歡用ISE。


3. Selecting a subset of objects

Select-Object意味著從一組對象中選擇或過濾出符合特定條件的資訊

直接上課程範例:

使用 Get-Date 獲取當前日期和時間

Get-Date

使用 Get-Date 獲取當前日期和時間,然後使用 Select-Object 選擇 DayOfYear 屬性

Get-Date | Select-Object –Property DayOfYear

獲取當前日期的 DayOfYear 屬性,然後以格式清單 (fl) 的形式顯示。

DayOfYear 表示一年中的第幾天,介於 1 到 366 之間。

Get-Date | Select-Object -Property DayOfYear | fl

raw-image

本次的收穫:

其實課程枚舉很多方式的範例,這邊就不一一呈現,而且遠端教學聲音忽大忽小,一下就講過去了 ... 因此我只好自己給自己增加一些範例在筆記裡面。
反正觀念釐清處就行了。對吧?

然後我自己所不足的就是太依賴複製貼上,我還沒能力像講師那樣信手沾來。
須檢討呀。


Tips:

  1. 輸入 cls 可以將Powershell 畫面清除乾淨
11會員
30內容數
主要是將「MIS工程師」必須要懂得知識用淺顯易懂的方式分享出來,也一併幫自己完善筆記。
留言0
查看全部
發表第一個留言支持創作者!