ค้นหาเว็บไซต์

วิธีสร้างและใช้ฟังก์ชันใน PowerShell


ฟังก์ชั่นมีความสำคัญมากในภาษาการเขียนโปรแกรมใดๆ เช่นเดียวกับ PowerShell หากคุณต้องการเขียนสคริปต์ PowerShell คุณควรรู้วิธีสร้างและใช้ฟังก์ชันใน PowerShell ฉันจะแสดงรายละเอียดให้คุณเห็นที่นี่เพื่อให้ผู้เริ่มต้น PowerShell สามารถเข้าใจได้เช่นกัน

ฟังก์ชั่นใน PowerShell คืออะไร?

ฟังก์ชันใน PowerShell คือบล็อกโค้ดที่มีชื่อซึ่งทำงานเฉพาะเจาะจง ฟังก์ชั่นที่ใช้ในการห่อหุ้มโค้ดเพื่อนำมาใช้ซ้ำและการจัดระเบียบที่ดีขึ้น พวกเขาสามารถรับพารามิเตอร์อินพุต ประมวลผลข้อมูล และส่งคืนผลลัพธ์ เมื่อใช้ฟังก์ชัน คุณสามารถหลีกเลี่ยงการทำซ้ำโค้ดและทำให้สคริปต์ของคุณเป็นแบบโมดูลาร์มากขึ้นและบำรุงรักษาได้ง่ายขึ้น

เหตุใดจึงใช้ฟังก์ชันใน PowerShell

ต่อไปนี้เป็นข้อดีบางประการของการใช้ฟังก์ชันใน PowerShell

  1. การนำโค้ดกลับมาใช้ใหม่ได้: ฟังก์ชันต่างๆ ช่วยให้คุณสามารถเขียนโค้ดชิ้นหนึ่งได้เพียงครั้งเดียว และนำมาใช้ซ้ำได้หลายครั้งตลอดทั้งสคริปต์ของคุณ
  2. ความเป็นโมดูล: การแบ่งสคริปต์ที่ซับซ้อนออกเป็นฟังก์ชันที่เล็กลงและจัดการได้ จะทำให้โค้ดของคุณเป็นระเบียบและอ่านง่ายขึ้น
  3. ความสามารถในการบำรุงรักษา: ฟังก์ชันต่างๆ ช่วยให้อัปเดตและบำรุงรักษาสคริปต์ของคุณได้ง่ายขึ้น หากคุณต้องการเปลี่ยนฟังก์ชันการทำงานเฉพาะ คุณเพียงแค่ต้องอัปเดตฟังก์ชันดังกล่าว แทนที่จะค้นหาผ่านสคริปต์ทั้งหมด
  4. การทดสอบ: สามารถทดสอบฟังก์ชันต่างๆ ได้อย่างอิสระ ซึ่งจะช่วยระบุจุดบกพร่องและช่วยให้สคริปต์แต่ละส่วนทำงานได้อย่างถูกต้อง

ไวยากรณ์ของฟังก์ชัน PowerShell

ใน PowerShell ฟังก์ชันต่างๆ จะถูกกำหนดโดยใช้คีย์เวิร์ด Function ตามด้วยชื่อและเครื่องหมายปีกกา {} ภายในวงเล็บปีกกา คุณวางโค้ดที่จะดำเนินการ

ไวยากรณ์พื้นฐานสำหรับการกำหนดฟังก์ชันใน PowerShell มีดังนี้:

Function FunctionName {
    # Your code here
}
  • Function: คีย์เวิร์ดที่ใช้ในการประกาศฟังก์ชัน
  • FunctionName: ชื่อที่คุณตั้งให้กับฟังก์ชันของคุณ แนวทางปฏิบัติที่ดีคือใช้รูปแบบการตั้งชื่อคำกริยา-คำนาม (เช่น Get-UserInfo)
  • {}: วงเล็บปีกกาล้อมรอบบล็อคโค้ดที่ประกอบเป็นฟังก์ชัน

นี่คือตัวอย่างง่ายๆ

Function Say-Hello {
    Write-Output "Hello, World!"
}

ชื่อของฟังก์ชันควรใช้กริยาที่ได้รับอนุมัติ เช่น Get, Set หรือ New ตามด้วยคำนาม ซึ่งจะช่วยรักษารูปแบบการตั้งชื่อมาตรฐานและปรับปรุงความสามารถในการอ่านโค้ด

เมื่อกำหนดฟังก์ชัน ตรวจสอบให้แน่ใจว่าชื่อระบุอย่างชัดเจนว่าฟังก์ชันทำอะไร ซึ่งจะช่วยให้ผู้ใช้รายอื่น (หรือตัวคุณเองในภายหลัง) เข้าใจวัตถุประสงค์ของฟังก์ชันโดยไม่ต้องกรองโค้ด

อ่านประเภทข้อมูล PowerShell

สร้างและใช้งานฟังก์ชันใน PowerShell

ตอนนี้ให้เราดูพร้อมตัวอย่างวิธีการสร้างและใช้งานฟังก์ชันใน PowerShell

ฟังก์ชั่น PowerShell พื้นฐาน

เริ่มต้นด้วยตัวอย่างง่ายๆ สมมติว่าเราต้องการสร้างฟังก์ชันที่ต้อนรับผู้ใช้ นี่คือโค้ดสคริปต์ PowerShell ที่สมบูรณ์:

Function Greet-User {
    Write-Output "Hello, welcome to PowerShell scripting!"
}

# Calling the function
Greet-User

ในตัวอย่างนี้ เราได้กำหนดฟังก์ชัน Greet-User ที่แสดงข้อความทักทาย จากนั้นเราจะเรียกใช้ฟังก์ชันโดยเพียงพิมพ์ชื่อฟังก์ชัน

หลังจากรันสคริปต์ PowerShell คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง

ฟังก์ชั่น PowerShell พร้อมพารามิเตอร์

ฟังก์ชันจะมีประสิทธิภาพมากยิ่งขึ้นเมื่อยอมรับพารามิเตอร์ พารามิเตอร์ช่วยให้คุณสามารถส่งข้อมูลไปยังฟังก์ชันของคุณได้ ทำให้มีความยืดหยุ่นมากขึ้น

นี่คือไวยากรณ์ของฟังก์ชัน PowerShell พร้อมพารามิเตอร์

Function FunctionName {
    param (
        [Parameter1Type]$Parameter1,
        [Parameter2Type]$Parameter2
    )
    # Your code here
}

นี่คือตัวอย่างของฟังก์ชัน PowerShell ที่มีพารามิเตอร์

มาสร้างฟังก์ชั่นที่ทักทายผู้ใช้ด้วยชื่อกันดีกว่า

Function Greet-User {
    param (
        [string]$FirstName,
        [string]$LastName
    )
    Write-Output "Hello, $FirstName $LastName! Welcome to PowerShell scripting!"
}

# Calling the function with parameters
Greet-User -FirstName "John" -LastName "Doe"

ในตัวอย่างนี้ ฟังก์ชัน Greet-User รับพารามิเตอร์ 2 ตัว: FirstName และ LastName เมื่อเรียกใช้ฟังก์ชัน เราจะระบุค่าสำหรับพารามิเตอร์เหล่านี้

ดูภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์ PowerShell โดยใช้โค้ด VS

อ่านตัวอย่างฟังก์ชัน PowerShell พร้อมพารามิเตอร์

ค่าพารามิเตอร์เริ่มต้นของฟังก์ชัน PowerShell

คุณยังสามารถตั้งค่าเริ่มต้นสำหรับพารามิเตอร์ในฟังก์ชัน PowerShell ได้อีกด้วย ค่าเริ่มต้นจะถูกใช้หากผู้โทรไม่ได้ระบุค่า

นี่คือไวยากรณ์:

Function Greet-User {
    param (
        [string]$FirstName = "John",
        [string]$LastName = "Doe"
    )
    Write-Output "Hello, $FirstName $LastName! Welcome to PowerShell scripting!"
}

# Calling the function without parameters
Greet-User

ในกรณีนี้ หากไม่มีการระบุพารามิเตอร์ ฟังก์ชันจะใช้ "John" และ "Doe" เป็นค่าเริ่มต้น

ส่งคืนค่าจากฟังก์ชัน PowerShell

ฟังก์ชัน PowerShell ยังสามารถส่งกลับค่าได้ คุณสามารถใช้คำสำคัญ return ในฟังก์ชัน PowerShell เพื่อส่งกลับค่า

นี่คือตัวอย่าง:

Function Add-Numbers {
    param (
        [int]$Number1,
        [int]$Number2
    )
    return $Number1 + $Number2
}

# Calling the function and storing the result
$result = Add-Numbers -Number1 5 -Number2 10
Write-Output "The sum is: $result"

ในกรณีนี้ ฟังก์ชัน Add-Numbers จะใช้จำนวนเต็ม 2 ตัวเป็นพารามิเตอร์ เพิ่มเข้าไป และส่งกลับผลลัพธ์

พารามิเตอร์บังคับและพารามิเตอร์เสริมในฟังก์ชัน

พารามิเตอร์ในฟังก์ชัน PowerShell อาจเป็นได้ทั้งแบบบังคับหรือแบบเลือกก็ได้ ต้องระบุ พารามิเตอร์บังคับ เมื่อเรียกใช้ฟังก์ชัน มิฉะนั้น PowerShell จะแจ้งให้ผู้ใช้ป้อนค่า หากต้องการกำหนดพารามิเตอร์บังคับ ให้ใช้แอตทริบิวต์ Mandatory:

นี่คือไวยากรณ์:

param (
    [Parameter(Mandatory=$true)]
    [string]$Name
)

พารามิเตอร์ทางเลือก ไม่จำเป็นต้องให้ผู้ใช้ป้อนข้อมูลหากไม่มีการระบุค่า สามารถกำหนดค่าเริ่มต้นได้:

param (
    [Parameter(Mandatory=$false)]
    [string]$City = "Unknown"
)

การตั้งค่านี้ช่วยให้แน่ใจว่าฟังก์ชันสามารถทำงานได้โดยมีการป้อนข้อมูลจากผู้ใช้เพียงเล็กน้อย แต่ยังคงบังคับอินพุตที่สำคัญเมื่อจำเป็น

ใช้หลายพารามิเตอร์ในฟังก์ชัน PowerShell

คุณยังสามารถสร้างฟังก์ชันที่จัดการหลายพารามิเตอร์และมีตรรกะที่ซับซ้อนมากขึ้นได้ มาสร้างฟังก์ชันใน PowerShell ที่จะคำนวณราคารวมของสินค้าในตะกร้าสินค้ารวมภาษีด้วย

Function Calculate-TotalPrice {
    param (
        [hashtable]$Cart,
        [decimal]$TaxRate = 0.07
    )
    $total = 0
    foreach ($item in $Cart.Keys) {
        $total += $Cart[$item]
    }
    $totalWithTax = $total * (1 + $TaxRate)
    return [math]::Round($totalWithTax, 2)
}

# Simulated shopping cart
$cart = @{
    "Laptop" = 999.99
    "Mouse"  = 25.50
    "Keyboard" = 45.75
}

# Calling the function
$totalPrice = Calculate-TotalPrice -Cart $cart
Write-Output "The total price including tax is: $totalPrice"

ในตัวอย่างนี้ ฟังก์ชัน คำนวณ-ราคารวม ใช้แฮชเทเบิลที่แสดงถึงรถเข็นช็อปปิ้งและอัตราภาษีเป็นพารามิเตอร์

พารามิเตอร์ตำแหน่งและชื่อ

ใน PowerShell พารามิเตอร์ฟังก์ชันสามารถกำหนดตำแหน่งหรือตั้งชื่อได้ พารามิเตอร์ตำแหน่ง ขึ้นอยู่กับลำดับของการป้อนอาร์กิวเมนต์:

function Test-Params {
    param ([string]$First, [string]$Second)
    Write-Output "$First $Second"
}

Test-Params "Hello" "World"

สำหรับ พารามิเตอร์ที่มีชื่อ ชื่อพารามิเตอร์จะถูกใช้เพื่อจับคู่อินพุต:

function Test-Params {
    param ([string]$First, [string]$Second)
    Write-Output "$First $Second"
}

Test-Params -First "Hello" -Second "World"

ชุดพารามิเตอร์ฟังก์ชัน PowerShell

ชุดพารามิเตอร์ช่วยให้คุณสามารถกำหนดชุดพารามิเตอร์ต่างๆ สำหรับฟังก์ชันได้ นี่คือตัวอย่าง

Function Get-Info {
    param (
        [Parameter(Mandatory = $true, ParameterSetName = "ByName")]
        [string]$Name,

        [Parameter(Mandatory = $true, ParameterSetName = "ByID")]
        [int]$ID
    )
    switch ($PSCmdlet.ParameterSetName) {
        "ByName" { Write-Output "Getting info by Name: $Name" }
        "ByID" { Write-Output "Getting info by ID: $ID" }
    }
}

# Calling the function with different parameter sets
Get-Info -Name "John Doe"
Get-Info -ID 12345

ไปป์ไลน์อินพุตเป็นพารามิเตอร์ให้กับฟังก์ชัน

ฟังก์ชัน PowerShell ยังสามารถรับอินพุตจากไปป์ไลน์ได้อีกด้วย นี่คือตัวอย่าง

Function ConvertTo-UpperCase {
    param (
        [Parameter(ValueFromPipeline = $true)]
        [string]$InputString
    )
    process {
        Write-Output $InputString.ToUpper()
    }
}

# Using the function with pipeline input
"john doe", "jane smith" | ConvertTo-UpperCase

ในตัวอย่างนี้ ฟังก์ชัน ConvertTo-UpperCase ยอมรับอินพุตจากไปป์ไลน์และแปลงแต่ละสตริงอินพุตเป็นตัวพิมพ์ใหญ่

เริ่มต้น ประมวลผล และสิ้นสุดบล็อกในฟังก์ชัน

ฟังก์ชัน PowerShell สามารถรวมบล็อก เริ่มต้น, กระบวนการ และ สิ้นสุด เพื่อจัดการขั้นตอนการดำเนินการต่างๆ

  • บล็อกเริ่มต้น: ดำเนินการหนึ่งครั้งที่จุดเริ่มต้น และโดยทั่วไปจะใช้ในการเริ่มต้นตัวแปร
  • บล็อกกระบวนการ: ประมวลผลแต่ละรายการที่ได้รับจากไปป์ไลน์ โดยดำเนินการสำหรับแต่ละออบเจ็กต์
  • บล็อกสิ้นสุด: ทำงานหลังจากประมวลผลอินพุตไปป์ไลน์ทั้งหมดแล้ว ซึ่งมีประโยชน์สำหรับงานล้างข้อมูล

ตัวอย่าง :

function Get-Sample {
    [CmdletBinding()]
    param (
        [string]$Name,
        [int]$Age
    )
    begin {
        # Code to initialize
    }
    process {
        # Code to process each item
    }
    end {
        # Code to clean up
    }
}

นี่คือวิธีใช้บล็อกในฟังก์ชัน PowerShell

อ่านสคริปต์เรียกใช้ PowerShell จากบรรทัดคำสั่งพร้อมพารามิเตอร์

การจัดการข้อผิดพลาดในฟังก์ชันใน PowerShell

เป็นการดีเสมอที่จะจัดการกับข้อผิดพลาดในฟังก์ชัน PowerShell PowerShell จัดเตรียมวิธีการต่างๆ สำหรับการจัดการข้อผิดพลาด เช่น บล็อก try-catch และตัวแปรข้อผิดพลาด มาดูวิธีรวมการจัดการข้อผิดพลาดในฟังก์ชันต่างๆ กัน

ใช้ลอง-จับ

ต่อไปนี้เป็นวิธีใช้ try-catch ในฟังก์ชัน PowerShell

Function Divide-Numbers {
    param (
        [int]$Dividend,
        [int]$Divisor
    )
    try {
        if ($Divisor -eq 0) {
            throw "Division by zero is not allowed."
        }
        $result = $Dividend / $Divisor
        return $result
    } catch {
        Write-Output "Error: $_"
    }
}

# Calling the function with error handling
$result = Divide-Numbers -Dividend 10 -Divisor 0
Write-Output "Result: $result"

ในตัวอย่างนี้ ฟังก์ชัน Divide-Numbers จะตรวจสอบว่าตัวหารเป็นศูนย์หรือไม่และส่งข้อผิดพลาดหากเป็นศูนย์ บล็อก try-catch จับข้อผิดพลาดและแสดงข้อความที่เหมาะสม

ใช้ -ErrorAction และ $Error

PowerShell ยังช่วยให้คุณควบคุมพฤติกรรมข้อผิดพลาดได้โดยใช้ -ErrorAction และตัวแปรอัตโนมัติ $Error

ต่อไปนี้เป็นวิธีใช้ตัวแปรเหล่านี้สำหรับการจัดการข้อผิดพลาดในฟังก์ชันใน PowerShell

Function Get-FileContent {
    param (
        [string]$FilePath
    )
    Get-Content -Path $FilePath -ErrorAction Stop
}

# Calling the function with error handling
try {
    $content = Get-FileContent -FilePath "nonexistentfile.txt"
    Write-Output $content
} catch {
    Write-Output "Error: $_"
}

ในที่นี้ ฟังก์ชัน Get-FileContent จะใช้ -ErrorAction Stop เพื่อให้แน่ใจว่าข้อผิดพลาดใดๆ ที่พบโดย Get-Content จะถือเป็นข้อผิดพลาดในการสิ้นสุด บล็อก try-catch จะจัดการกับข้อผิดพลาดเหล่านี้

อ่านฟังก์ชัน PowerShell: ส่งกลับค่าและหลายค่า

วิธีการเรียกใช้ฟังก์ชันใน PowerShell

หากต้องการเรียกใช้ฟังก์ชันใน PowerShell ผู้ใช้จะต้องเข้าใจไวยากรณ์และวิธีการส่งพารามิเตอร์อย่างมีประสิทธิภาพ ตอนนี้ ฉันจะแสดงวิธีพื้นฐานในการเรียกใช้ฟังก์ชันต่างๆ และวิธีส่งอาร์กิวเมนต์เพื่อเรียกใช้ฟังก์ชันใน PowerShell

การเรียกใช้ฟังก์ชัน PowerShell อย่างง่าย

หากต้องการเรียกใช้ฟังก์ชันใน PowerShell คุณเพียงพิมพ์ชื่อฟังก์ชันตามด้วยวงเล็บ ตัวอย่างเช่น เมื่อกำหนดฟังก์ชันชื่อ Greet-User คุณสามารถเรียกได้โดยการพิมพ์:

Greet-User

ซึ่งจะรันโค้ดภายในฟังก์ชัน Greet-User

ส่งพารามิเตอร์ไปยังฟังก์ชัน

ฟังก์ชัน PowerShell มักจะใช้พารามิเตอร์เพื่อทำให้มีความยืดหยุ่นมากขึ้น หากต้องการส่งพารามิเตอร์ ให้รวมพารามิเตอร์เหล่านั้นไว้ในวงเล็บหลังชื่อฟังก์ชัน ตัวอย่างเช่น ถ้า Greet-User ยอมรับพารามิเตอร์สำหรับชื่อผู้ใช้:

function Greet-User {
    param ($Name)
    Write-Output "Hello, $Name!"
}

คุณสามารถเรียกใช้ฟังก์ชันนี้และส่งชื่อได้ดังนี้:

Greet-User -Name "Alice"

สิ่งนี้นำไปสู่ผลลัพธ์: Hello, Alice! พารามิเตอร์สามารถบังคับหรือเป็นทางเลือกก็ได้ ใช้บล็อก param เพื่อกำหนดเพื่อให้แน่ใจว่าคุณระบุว่าจำเป็นหรือมีค่าเริ่มต้น

สำหรับพารามิเตอร์หลายตัว ให้แยกแต่ละรายการด้วยการเว้นวรรคตามด้านล่าง:

Greet-User "Alice" 25

แนวทางปฏิบัติที่ดีที่สุดสำหรับฟังก์ชัน PowerShell

ในขณะที่สร้างและใช้ฟังก์ชันใน PowerShell คุณควรปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดบางประการ

แบบแผนการตั้งชื่อและกริยาที่ได้รับอนุมัติ

ฟังก์ชันควรอยู่ในรูปแบบ คำกริยา-คำนาม ตัวอย่างเช่น ฟังก์ชันที่ดึงข้อมูลกระบวนการอาจมีชื่อว่า Get-Process

PowerShell มีรายการคำกริยาที่ได้รับอนุมัติซึ่งควรใช้เพื่อให้มั่นใจว่ามีความสอดคล้องกัน กริยาทั่วไปบางคำ ได้แก่ รับ, ตั้งค่า, ลบ และ เริ่มต้น การใช้คำกริยาเหล่านี้ช่วยให้ผู้อื่นเข้าใจวัตถุประสงค์ของฟังก์ชันได้อย่างรวดเร็ว

นอกจากนี้ ชื่อฟังก์ชันควรอยู่ใน PascalCase ใช้ตัวอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ เช่น Start-Service หรือ Stop-Process เพื่อปรับปรุงความสามารถในการอ่าน

ความช่วยเหลือและเอกสารประกอบตามความคิดเห็น

การบันทึกฟังก์ชันต่างๆ ด้วยความช่วยเหลือตามความคิดเห็นจะช่วยเพิ่มความสะดวกในการใช้งาน รวมหมายเหตุที่อธิบายวัตถุประสงค์ พารามิเตอร์ และผลลัพธ์ของฟังก์ชัน

เริ่มต้นเอกสารประกอบด้วย .SYNOPSIS เพื่อให้คำอธิบายโดยย่อ ใช้ .DESCRIPTION เพื่อดูรายละเอียดเพิ่มเติม การบันทึกพารามิเตอร์ด้วย .PARAMETER ช่วยชี้แจงอินพุตที่จำเป็น ตัวอย่างเช่น:

<#
.SYNOPSIS
   Retrieves the list of running processes.
.DESCRIPTION
   Retrieves and displays the list of all running processes on the system.
.PARAMETER Name
   The name of the process to retrieve.
.EXAMPLE
   Get-Process -Name "notepad"
#>

การรวมความคิดเห็นเหล่านี้ทำให้ผู้อื่นเข้าใจและใช้ฟังก์ชันได้ง่ายขึ้น นอกจากนี้ยังช่วยในเรื่องการบำรุงรักษาโค้ดและการอัพเดตในอนาคต

ตัวอย่างฟังก์ชัน PowerShell

ต่อไปนี้เป็นตัวอย่างฟังก์ชัน PowerShell บางส่วน

ตัวอย่างที่ 1: ดึงข้อมูลผู้ใช้

ฟังก์ชัน PowerShell ด้านล่างดึงข้อมูลผู้ใช้จากฐานข้อมูลจำลองโดยใช้แฮชเทเบิล

# Simulated database of users
$users = @{
    "john.doe" = @{
        FirstName = "John"
        LastName  = "Doe"
        Email     = "john.doe@example.com"
    }
    "jane.smith" = @{
        FirstName = "Jane"
        LastName  = "Smith"
        Email     = "jane.smith@example.com"
    }
}

Function Get-UserInfo {
    param (
        [string]$Username
    )
    if ($users.ContainsKey($Username)) {
        return $users[$Username]
    } else {
        Write-Output "User not found."
    }
}

# Calling the function
$userInfo = Get-UserInfo -Username "john.doe"
if ($userInfo) {
    Write-Output "First Name: $($userInfo.FirstName)"
    Write-Output "Last Name: $($userInfo.LastName)"
    Write-Output "Email: $($userInfo.Email)"
}

ตัวอย่างที่ 2: คำนวณราคารวมพร้อมภาษี

ฟังก์ชัน PowerShell นี้จะคำนวณราคารวมของสินค้าในตะกร้าสินค้ารวมภาษีแล้ว

Function Calculate-TotalPrice {
    param (
        [hashtable]$Cart,
        [decimal]$TaxRate = 0.07
    )
    $total = 0
    foreach ($item in $Cart.Keys) {
        $total += $Cart[$item]
    }
    $totalWithTax = $total * (1 + $TaxRate)
    return [math]::Round($totalWithTax, 2)
}

# Simulated shopping cart
$cart = @{
    "Laptop" = 999.99
    "Mouse"  = 25.50
    "Keyboard" = 45.75
}

# Calling the function
$totalPrice = Calculate-TotalPrice -Cart $cart
Write-Output "The total price including tax is: $totalPrice"

ตัวอย่างที่ 3: แปลงข้อความเป็นตัวพิมพ์ใหญ่

ฟังก์ชันด้านล่างใน PowerShell จะแปลงข้อความอินพุตเป็นตัวพิมพ์ใหญ่และรองรับอินพุตไปป์ไลน์

Function ConvertTo-UpperCase {
    param (
        [Parameter(ValueFromPipeline = $true)]
        [string]$InputString
    )
    process {
        Write-Output $InputString.ToUpper()
    }
}

# Using the function with pipeline input
"john doe", "jane smith" | ConvertTo-UpperCase

นี่คือผลลัพธ์ในภาพหน้าจอด้านล่าง:

ตัวอย่างที่ 4: ตรวจสอบพื้นที่ดิสก์

ฟังก์ชัน PowerShell นี้จะตรวจสอบพื้นที่ว่างบนดิสก์บนไดรฟ์ที่ระบุ และส่งกลับคำเตือนหากพื้นที่ว่างต่ำกว่าเกณฑ์ที่กำหนด

Function Check-DiskSpace {
    param (
        [string]$DriveLetter = "C",
        [int]$ThresholdGB = 10
    )
    $drive = Get-PSDrive -Name $DriveLetter
    $freeSpaceGB = [math]::Round($drive.Free / 1GB, 2)
    if ($freeSpaceGB -lt $ThresholdGB) {
        Write-Output "Warning: Free space on drive $DriveLetter is below $ThresholdGB GB. Current free space: $freeSpaceGB GB."
    } else {
        Write-Output "Drive $DriveLetter has sufficient free space: $freeSpaceGB GB."
    }
}

# Calling the function
Check-DiskSpace -DriveLetter "C" -ThresholdGB 15

ตัวอย่างที่ 5: ไฟล์สำรองข้อมูล

ฟังก์ชัน PowerShell ด้านล่างนี้จะสำรองไฟล์จากไดเร็กทอรีต้นทางไปยังไดเร็กทอรีปลายทาง

Function Backup-Files {
    param (
        [string]$SourceDirectory,
        [string]$DestinationDirectory
    )
    if (-Not (Test-Path $SourceDirectory)) {
        Write-Output "Source directory does not exist."
        return
    }
    if (-Not (Test-Path $DestinationDirectory)) {
        New-Item -ItemType Directory -Path $DestinationDirectory
    }
    Copy-Item -Path "$SourceDirectory\*" -Destination $DestinationDirectory -Recurse -Force
    Write-Output "Backup completed from $SourceDirectory to $DestinationDirectory."
}

# Calling the function
Backup-Files -SourceDirectory "C:\Users\JohnDoe\Documents" -DestinationDirectory "D:\Backup\Documents"

บทสรุป

ฉันหวังว่าบทช่วยสอนนี้จะทำให้คุณมีแนวคิดที่สมบูรณ์เกี่ยวกับวิธีสร้างและใช้ฟังก์ชัน PowerShell ฉันอธิบายไวยากรณ์และตัวอย่างบางส่วนของ ฟังก์ชันใน PowerShell

บทความที่เกี่ยวข้อง