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

PowerShell ตั้งค่าตัวแปรสภาพแวดล้อม | เรียนรู้การทำงานกับตัวอย่าง?


ข้อมูลเบื้องต้นเกี่ยวกับตัวแปรสภาพแวดล้อมชุด PowerShell

ตัวแปรสภาพแวดล้อมของ PowerShell จัดเก็บข้อมูลระบบปฏิบัติการ Windows เช่น เส้นทางระบบปฏิบัติการที่ติดตั้ง ไดรฟ์ระบบ เส้นทางโปรไฟล์ผู้ใช้ จำนวนโปรเซสเซอร์ ฯลฯ สามารถใช้โดยโปรแกรมอื่นหรือกระบวนการหลักย่อยได้เนื่องจากทำงานง่ายกว่า การตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้ PowerShell เป็นวิธีที่ง่าย และสำหรับสิ่งนั้น เราสามารถใช้วิธีการต่อท้ายตัวแปรอย่างง่าย วิธี .Net หรือ Set-Item cmdlet

ไวยากรณ์

ด้านล่างนี้เป็นวิธีการตั้งค่าตัวแปรสภาพแวดล้อม

โดยการเพิ่ม/ต่อท้ายตัวแปร

$Env:<variable-name> = "<new-value>"

ไวยากรณ์คำสั่งข้างต้นสร้างตัวแปรสภาพแวดล้อมใหม่ด้วยค่าที่ระบุ หากต้องการเพิ่มตัวแปรต่อท้าย ให้ใช้สัญลักษณ์ (+)

$Env:<variable-name> += "<new-value>"

การใช้ Set-Item cmdlet

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

Set-Item -Path Env:<variable-name> -Value ($Env:<variable-name> + ";<new-value>")

การใช้วิธีกำหนดเนื้อหา

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

Set-Content -Path env:<variable-name> -Value "ValueName"

การใช้วิธีคลาส .Net

[Environment]::SetEnvironmentVariable(String, String)

คำสั่งดังกล่าวจะสร้าง แก้ไข หรือลบตัวแปรสภาพแวดล้อมที่จัดเก็บไว้ในกระบวนการปัจจุบัน

[Environment]::SetEnvironmentVariable(String, String,EnvironmentVariableTarget)

คำสั่งดังกล่าวจะสร้าง แก้ไข หรือลบตัวแปรสภาพแวดล้อมที่จัดเก็บไว้ในกระบวนการปัจจุบันหรือคีย์รีจิสทรีของระบบปฏิบัติการ Windows

ตัวแปรสภาพแวดล้อมทำงานอย่างไรใน Windows

ตัวแปรสภาพแวดล้อมจะถูกจัดเก็บไว้ในตัวแปรที่เรียกว่า Env และสามารถเข้าถึงได้โดยใช้ Get-ChildItem (นามแฝง: dir) เพื่อรับค่าทั้งหมดที่จัดเก็บไว้ในตัวแปร ตัวอย่างเช่น,

Get-ChildItem Env:

เอาต์พุต:

หากคุณสังเกตเห็นในคำสั่งข้างต้น ตัวแปรสภาพแวดล้อมจะลงท้ายด้วยสัญลักษณ์ (:) และบ่งชี้สัญลักษณ์ไดรฟ์ แต่ Env: เป็นไดรฟ์เฉพาะ และคุณสามารถรับไดรฟ์ทั้งหมดที่เกี่ยวข้องในเซสชันปัจจุบันได้โดยใช้ Get-PSDrive สั่งการ.

ค่า

Get-PSDrive

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

Get-PSProvider

เอาต์พุต:

เมื่อเราตั้งค่าตัวแปรสภาพแวดล้อม เราจำเป็นต้องใช้สัญลักษณ์ Env: เพื่อเข้าถึงตัวแปรนั้นด้วยวิธีการที่อธิบายไว้ข้างต้นของไวยากรณ์

หากต้องการตั้งค่าตัวแปรสภาพแวดล้อมอย่างต่อเนื่องบน Windows OS คุณต้องใช้คุณสมบัติคอมพิวเตอร์ -> การตั้งค่าระบบขั้นสูง -> แท็บขั้นสูง -> ตัวแปรสภาพแวดล้อม คุณสามารถเพิ่มหรือแก้ไขตัวแปรสภาพแวดล้อมที่มีอยู่ในขอบเขตผู้ใช้หรือเครื่อง จากนั้น windows จะเขียนตัวแปรนี้ในรีจิสทรีเพื่อทำการเปลี่ยนแปลงอย่างถาวร และจะยังคงอยู่แม้หลังจากรีสตาร์ท Windows แล้ว

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

ตัวอย่างของตัวแปรสภาพแวดล้อมชุด PowerShell

นี่คือตัวอย่างต่อไปนี้ที่กล่าวถึงด้านล่าง

ตัวอย่าง #1 - ผนวกวิธีการตัวแปร

ในวิธีนี้ เราจะผนวกตัวแปรที่มีอยู่เข้ากับรายการตัวแปรสภาพแวดล้อม ตัวอย่างเช่น,

เราจำเป็นต้องเพิ่มเส้นทางอื่นให้กับตัวแปรสภาพแวดล้อม PSModulePath เส้นทางที่มีอยู่มีดังต่อไปนี้

dir Env:\PSModulePath

เอาต์พุต:

เราสามารถใช้วิธีแยกเพื่อให้ได้เส้นทางที่ถูกต้องในคอนโซล

(dir Env:\PSModulePath).value -split ';'

เอาต์พุต:

ในการเพิ่มเส้นทางใหม่ เราเพียงแต่เพิ่มตัวแปรเข้าไป

$env:PSModulePath += ";c:\temp"

เมื่อคุณตรวจสอบตัวแปรของ PSModulePath ควรแสดง C:\temp

$env:PSModulePath -split ';'

เอาต์พุต:

นี่เป็นเพียงการเพิ่มชั่วคราว เมื่อคุณรีสตาร์ทคอมพิวเตอร์ เส้นทางที่เพิ่มไว้ข้างต้นจะหายไป

ในการตั้งค่าตัวแปรใหม่ คุณสามารถใช้ชื่อของตัวแปรและค่าใหม่ได้โดยตรง ดังที่แสดงในส่วนไวยากรณ์

$env:AZSubscription = 'Visual Studio Subscription'

เอาต์พุต:

คำสั่งด้านบนจะเพิ่มตัวแปรสภาพแวดล้อมใหม่ที่เรียกว่า AZSubscription และตั้งค่าเป็น 'Visual Studio Subscription'

ตัวอย่าง #2 - การใช้ Set-Item cmdlet

นอกจากนี้เรายังสามารถใช้คำสั่ง Set-Item เพื่อตั้งค่าตัวแปรสภาพแวดล้อม ตัวอย่างเช่น หากต้องการเพิ่มค่าต่อท้ายตัวแปรสภาพแวดล้อม AZSubscription ข้างต้น เราสามารถใช้คำสั่งด้านล่างนี้

Set-Item -Path Env:\AZSubscription -Value ($env:AZSubscription + ";AutomationLab")

เอาต์พุต:

ในการสร้างค่าสภาพแวดล้อมใหม่โดยใช้ Set-Item เราสามารถจัดเตรียมเส้นทางใหม่และค่าใหม่ได้โดยตรง

Set-Item -Path Env:\AZResourceGroup -Value 'AutomationRG'

เอาต์พุต:

ตัวอย่าง #3 - ตั้งค่า cmdlet เนื้อหา

เราสามารถใช้คำสั่งด้านล่างเพื่อผนวกเส้นทางในตัวแปรสภาพแวดล้อมโดยใช้ Set-Content cmdlet ที่นี่ เรากำลังจัดเตรียมตัวแปรสภาพแวดล้อมที่มีอยู่เพื่อผนวกในพารามิเตอร์ Value

Set-Content -Path Env:\AZResourceGroup -Value ($Env:AZResourceGroup + ";AutomationRG2")

เอาต์พุต:

ในทำนองเดียวกัน หากต้องการเพิ่มตัวแปรสภาพแวดล้อมใหม่โดยใช้ Set-Content cmdlet เราสามารถใช้ชื่อตัวแปรใหม่ในพารามิเตอร์ -Path และใช้ค่าในพารามิเตอร์ -Value ได้โดยตรง

Set-Content -Path Env:\AZResourceGroup -Value 'NewAutomationRG'

เอาต์พุต:

หากเราใช้ตัวแปรที่มีอยู่โดยไม่ต่อท้ายค่าในพารามิเตอร์ -Value มันจะลบค่าเก่าออกและตั้งค่าใหม่ ดังที่แสดงในตัวอย่างข้างต้น

ตัวอย่าง #4 - การใช้วิธีคลาส .Net

ในวิธีนี้ เราใช้คลาส PowerShell .Net ที่เรียกว่า [System.Environment] เพื่อตั้งค่าหรือสร้างค่าใหม่สำหรับตัวแปร Environment

อันดับแรก เราจะกำหนดค่าใหม่ให้กับสิ่งแวดล้อม

[System.Environment]::SetEnvironmentVariable('AZResourceGroup','Automationtest')

เอาต์พุต:

นอกจากนี้เรายังสามารถใช้นามแฝง [Environmet] แทน [System.Environment] หากต้องการเพิ่มค่าใหม่โดยใช้วิธีนี้ เราจะใช้ไวยากรณ์ด้านล่างนี้ ซึ่งระบุไว้ในส่วนไวยากรณ์

[Environment]::SetEnvironmentVariable(String, String,EnvironmentVariableTarget)
$path = $env:AZResourceGroup + ";AutomationTest2"
[Environment]::SetEnvironmentVariable('AZresourceGroup',$path)

เอาต์พุต:

สรุป - PowerShell ตั้งค่าตัวแปรสภาพแวดล้อม

ตัวแปรสภาพแวดล้อมมีประสิทธิภาพมากในแง่ของการดึงรายละเอียดเกี่ยวกับระบบปฏิบัติการ ฮาร์ดแวร์ และแอปพลิเคชัน ภาษาการเขียนโปรแกรมบางภาษาเช่น Java, .NET ใช้ตัวแปรสภาพแวดล้อมเพื่อให้แอปพลิเคชันดึงข้อมูลโดยตรงและทำงานร่วมกับพวกเขา พวกเขายังสามารถสร้างตัวแปรสภาพแวดล้อมเพื่อความสะดวกในการใช้งาน

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