2009-07-22 2 views
1

Я знаю, что вы можете написать поддержку пользовательских PSDrives. Но они всегда являются корнем файловой системы. Что было бы неплохо, если бы был способ разрешить запуск VFS на произвольных узлах файловой системы, например, с помощью Set-Location для ввода архивного файла и использования их, как если бы они были папками. (Как будто это делает Far).Есть ли способ в Powershell предоставить виртуальные файловые системы в других файловых системах?

Есть ли способ достичь этого? Я знаю, что это будет некоторая работа, чтобы понять это правильно и работать, но на данный момент меня больше интересует, возможно ли вообще .

ETA: То, что я не хочу, это новый PSDrive для каждого архива я вхожу, так что следующий не на самом деле, что я после:

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> _ 

ответ

2

То, что вы описываете поставщик FileSystem, который также рассматривает архивы как объекты-контейнеры , Поскольку FileSystemProvider запечатан, я думаю, вам нужно написать свой собственный NavigationCmdletProvider, который сделает вашу магию.

0

Несомненно. Фактически, вы уже можете сделать это в какой-то степени, не написав код оснастки. Например:

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

Дело в том, что я специально * не хочу нового PSDrive, а скорее расширяет семантику для существующих файловых систем. Я уточню вопрос. – Joey

+0

Выглядит как «подставщик» для меня, что вы там делаете. – Joey

+0

Ах, я неправильно понял, о чем вы просили. –

Смежные вопросы