PowerShell: احصل على الدليل الافتراضي من داخل cmdlet

StackOverflow https://stackoverflow.com/questions/19826114

  •  05-07-2022
  •  | 
  •  

سؤال

أنا أكتب 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top