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 ใช้ตัวแปรสภาพแวดล้อมเพื่อให้แอปพลิเคชันดึงข้อมูลโดยตรงและทำงานร่วมกับพวกเขา พวกเขายังสามารถสร้างตัวแปรสภาพแวดล้อมเพื่อความสะดวกในการใช้งาน













