วิธีรับไดเร็กทอรีปัจจุบันของ cmdlet ที่ถูกเรียกใช้งาน
นี่ควรจะเป็นงานง่าย ๆ แต่ฉันได้เห็นหลายครั้งในการหาพา ธ ไปยังไดเร็กตอรี่ที่ cmdlet ที่เรียกใช้งานอยู่ด้วยความสำเร็จที่หลากหลาย ตัวอย่างเช่นเมื่อผมดำเนินการC:\temp\myscripts\mycmdlet.ps1ที่มีการตั้งค่าไฟล์ที่C:\temp\myscripts\settings.xmlฉันต้องการที่จะสามารถที่จะเก็บในตัวแปรภายในC:\temp\myscriptsmycmdlet.ps1 นี่เป็นวิธีหนึ่งที่ใช้งานได้ (แม้ว่าจะค่อนข้างยุ่งยาก): $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.MyCommand.Path $settingspath = $directorypath + '\settings.xml' อีกคนหนึ่งแนะนำวิธีแก้ปัญหานี้ซึ่งทำงานได้เฉพาะในสภาพแวดล้อมการทดสอบของเรา: $settingspath = '.\settings.xml' ฉันชอบวิธีการหลังมากและต้องการให้วิเคราะห์ filepath เป็นพารามิเตอร์ในแต่ละครั้ง แต่ฉันไม่สามารถทำให้มันทำงานบนสภาพแวดล้อมการพัฒนาของฉันได้ ฉันควรทำอย่างไร มีบางสิ่งที่เกี่ยวข้องกับการกำหนดค่า PowerShell หรือไม่