قد ترغب في تجربة ذلك بدلاً من ذلك ، يمكن أن يشير CurrentLocation.path أيضًا إلى مسارات مزود أخرى ، مثل التسجيل.
this.SessionState.Path.CurrentFileSystemLocation.Path
سؤال
أنا أكتب PowerShell Cmdlet. من الداخل من طريقة CMDLET BeginProcessing () ، أريد أن أكون قادرًا على استرداد الدليل الذي كان الدليل الافتراضي في الوقت الذي تم فيه استدعاء CMDLET.
مثال: إذا قام المستخدم بذلك:
cd \myDirectory
invoke-mycmdlet
أريد أن يعرف الكود الخاص بي أن دليل shell الافتراضي كان C: myDirectory. عندما أقوم بالوصول إلى البيئة.
لقد رأيت منشورًا مشابهًا على ذلك حيث كان الملصق يحتاج إلى تعيين البيئة :: الدليل الحالي من داخل القشرة باستخدام Get Location. هذا لن ينجح بالنسبة لي.
في الأساس ، يقوم CMDLT الخاص بي ببعض أشياء نظام الملفات ، وأريد أن يكون المستخدم قادرًا على فقط CD العمل من وحدة التحكم في القيادة القديمة.
المحلول
قد ترغب في تجربة ذلك بدلاً من ذلك ، يمكن أن يشير CurrentLocation.path أيضًا إلى مسارات مزود أخرى ، مثل التسجيل.
this.SessionState.Path.CurrentFileSystemLocation.Path
نصائح أخرى
كما تعلمون ، يبدو أنني أجدها دائمًا بعد النشر - بغض النظر عن المدة التي قضيتها في البحث قبل الوصول إليها!
لذلك ، يرث cmdlet الخاص بي من pscmdlet. لقد وجدت أنه يمكنني الحصول على المسار الذي أردته من
this.SessionState.Path.CurrentLocation.Path
(حيث "هذا" فئة cmdlet ترث من pscmdlet)
جرب ال Get-Location
cmdlet. يجب أن يكون موقع تنفيذ البرنامج النصي الحالي ، بدلاً من مجلد بدء تشغيل PowerShell Host.