هل هناك طريقة في PowerShell لتوفير أنظمة الملفات الافتراضية في أنظمة الملفات الأخرى؟

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

سؤال

أعلم أنه يمكنك كتابة الدعم ل Custom PSDRIVES. لكن تلك دائما جذر نظام الملفات. ما سيكون لطيفا إذا كانت هناك طريقة للسماح ببدء تشغيل VFS في العقد التعسفي لنظام الملفات، مثل استخدام Set-Location لإدخال ملف الأرشيف ربما واستخدمها كما لو كانت مجلدات. (كيندا مثل بعيد يفعل هذا).

هل هناك أي طريقة لتحقيق ذلك؟ أعلم أنه سيكون بعض العمل للحصول عليه بشكل صحيح والعمل، ولكن في الوقت الحالي أكثر اهتماما بما إذا كان من الممكن على الاطلاق.

إيتا: ما لا أريده هو PSDDrive جديد لكل أرشيف أدخل، وبالتالي فإن ما يلي ليس في الواقع ما أنا بعد:

PS C:\Path> Invoke-Magic stuff.zip
PS C:\Path> Set-Location MyNewDrive:
PS MyNewDrive:> _

لكن بالأحرى

PS C:\Path> Set-Location stuff.zip
PS C:\Path\stuff.zip> _
هل كانت مفيدة؟

المحلول

ما تصفه هو موفر نظام الملفات الذي يعتبر أيضا الأرشيف كائنات حاوية. كما filesystemprovider. مختومة، أعتقد أنك سوف تضطر إلى كتابة الخاصة بك navigationcmdletprovider. هذا يفعل سحرك.

نصائح أخرى

بالتأكيد. في الواقع، يمكنك بالفعل القيام بذلك بالفعل إلى حد ما دون كتابة أي رمز في الأداة الإضافية. علي سبيل المثال:

New-PsDrive -Scope Global -Name MyMod -PSProvider FileSystem -Root (split-path $profile | join-path -child Modules)
dir MyMod:\

تحتاج إلى كتابة مزود, هنا مثال لمزود SourceSafe (القديم ولكن لا يزال ذا صلة)

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