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

ตัวแปรส่วนกลางของ PowerShell [พร้อมตัวอย่าง]


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

ตัวแปรส่วนกลางของ PowerShell คือตัวแปรที่สามารถเข้าถึงได้จากขอบเขตใดๆ ภายในเซสชันปัจจุบัน ช่วยให้สามารถแบ่งปันข้อมูลระหว่างสคริปต์ ฟังก์ชัน และ cmdlets ประกาศโดยใช้คำนำหน้า $global: ตัวแปรเหล่านี้เหมาะอย่างยิ่งสำหรับการจัดเก็บข้อมูล เช่น คีย์ API หรือการตั้งค่าการกำหนดค่าที่จำเป็นต้องเข้าถึงอย่างสม่ำเสมอตลอดทั้งโค้ดของคุณ ตัวอย่างเช่น $global:ApiKey="your_api_key_here" สามารถใช้ในหลายฟังก์ชันเพื่อโต้ตอบกับ API โดยไม่ต้องฮาร์ดโค้ดคีย์ซ้ำๆ

ตัวแปรทั่วโลกใน PowerShell คืออะไร

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

ไวยากรณ์สำหรับประกาศตัวแปรส่วนกลางใน PowerShell

หากต้องการประกาศตัวแปรส่วนกลางใน PowerShell คุณใช้คำนำหน้า $global: ตามด้วยชื่อตัวแปร นี่คือไวยากรณ์พื้นฐาน:

$global:VariableName = "Value"

ตัวอย่างเช่น หากคุณต้องการสร้างตัวแปรร่วมเพื่อจัดเก็บชื่อเมือง คุณสามารถเขียนว่า:

$global:City = "New York"

อ่านตัวแปรท้องถิ่นของ PowerShell

ตัวแปรส่วนกลางของ PowerShell ในฟังก์ชัน

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

ตัวอย่าง

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

$global:Message = "Hello, World!"

function Show-Message {
    Write-Output $global:Message
}

Show-Message  # Output: Hello, World!

ในตัวอย่างนี้ มีการเข้าถึงตัวแปรโกลบอล $global:Message ภายในฟังก์ชัน Show-Message เพื่อส่งออกค่าของมัน

นี่คือผลลัพธ์ในภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์ PowerShell ด้านบน

PowerShell สร้างฟังก์ชันภายในตัวแปรส่วนกลาง

คุณสามารถสร้างตัวแปรร่วมภายในฟังก์ชันได้โดยใช้คำนำหน้า $global: เมื่อคุณประกาศตัวแปร สิ่งนี้ทำให้ตัวแปรสามารถเข้าถึงได้ทั่วโลก แม้ว่าจะอยู่นอกฟังก์ชันก็ตาม

ตัวอย่าง

นี่คือตัวอย่างการสร้างตัวแปรส่วนกลางภายในฟังก์ชันใน PowerShell

function Create-GlobalVariable {
    $global:Greeting = "Welcome to PowerShell!"
}

Create-GlobalVariable
Write-Output $global:Greeting  # Output: Welcome to PowerShell!

ที่นี่ ฟังก์ชัน Create-GlobalVariable จะสร้างตัวแปรโกลบอล $global:Greeting ซึ่งสามารถเข้าถึงได้จากภายนอกฟังก์ชัน

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

อ่านวิธีตรวจสอบว่าตัวแปรเป็น Null ใน PowerShell หรือไม่

ตั้งค่าตัวแปรส่วนกลางในฟังก์ชันใน PowerShell

การตั้งค่าตัวแปรร่วมภายในฟังก์ชันเกี่ยวข้องกับการใช้คำนำหน้า $global: เพื่อให้แน่ใจว่าค่าของตัวแปรได้รับการแก้ไขทั่วโลก

ฉันจะแสดงตัวอย่างวิธีตั้งค่าตัวแปรส่วนกลางในฟังก์ชันใน PowerShell

ตัวอย่าง

$global:Counter = 10

function Set-GlobalCounter {
    $global:Counter = 20
}

Set-GlobalCounter
Write-Output $global:Counter  # Output: 20

ในตัวอย่างนี้ ฟังก์ชัน Set-GlobalCounter จะตั้งค่าของตัวแปรโกลบอล $global:Counter เป็น 20

ตรวจสอบแบบแผนการตั้งชื่อตัวแปร PowerShell

เปลี่ยนตัวแปรร่วมภายในฟังก์ชัน PowerShell

การเปลี่ยนตัวแปรส่วนกลางภายในฟังก์ชันใน PowerShell หมายถึงการอัปเดตค่าโดยใช้คำนำหน้า $global: เพื่อให้แน่ใจว่าการเปลี่ยนแปลงจะสะท้อนให้เห็นทั่วโลกตลอดทั้งเซสชัน

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

ตัวอย่าง

$global:Status = "Inactive"

function Activate-Status {
    $global:Status = "Active"
}

Activate-Status
Write-Output $global:Status  # Output: Active

ในตัวอย่างนี้ ฟังก์ชัน Activate-Status จะเปลี่ยนค่าของตัวแปรโกลบอล $global:Status จาก "Inactive" เป็น "Active"

ผลลัพธ์อยู่ในภาพหน้าจอด้านล่าง ฉันรันโค้ดด้านบนโดยใช้โค้ด VS

ตัวอย่างตัวแปรส่วนกลางของ PowerShell

ฉันจะแสดงตัวอย่างที่เป็นประโยชน์เพื่อช่วยให้คุณเข้าใจว่าตัวแปรทั่วโลกใน PowerShell เป็นอย่างไร

ตัวอย่างที่ 1: จัดเก็บคีย์ API

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

$global:ApiKey = "your_api_key_here"

function Get-PopulationData {
    param (
        [string]$State
    )
    $url = "https://api.census.gov/data/2020/dec/sf1?get=NAME&for=state:$State&key=$global:ApiKey"
    $response = Invoke-RestMethod -Uri $url
    return $response
}

# Fetch population data for California
$populationData = Get-PopulationData -State "06"
Write-Output $populationData

ในตัวอย่างนี้ ตัวแปร $global:ApiKey สามารถเข้าถึงได้ภายในฟังก์ชัน Get-PopulationData ทำให้ง่ายต่อการนำคีย์ API มาใช้ซ้ำโดยไม่ต้องฮาร์ดโค้ดหลายครั้ง

ตัวอย่างที่ 2: กำหนดการตั้งค่าสภาพแวดล้อม

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

$global:ServerLocation = "USA"
$global:TimeZone = "Eastern Standard Time"

function Configure-Server {
    param (
        [string]$ServerName
    )
    Write-Output "Configuring $ServerName located in $global:ServerLocation with timezone $global:TimeZone"
    # Additional configuration logic here
}

# Configure servers
Configure-Server -ServerName "Server1"
Configure-Server -ServerName "Server2"

ในที่นี้ ตัวแปร $global:ServerLocation และ $global:TimeZone ใช้เพื่อจัดเก็บการตั้งค่าการกำหนดค่าที่ใช้กับเซิร์ฟเวอร์ทั้งหมด เพื่อให้มั่นใจว่าสคริปต์มีความสอดคล้องกัน

ผลลัพธ์อยู่ในภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์ด้านบน

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

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

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

บทสรุป

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

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