Есть ли в Powershell способ предоставлять виртуальные файловые системы в других файловых системах?

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

Вопрос

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

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

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> _
Это было полезно?

Решение

То, что вы описываете, - это поставщик файловой системы, который также рассматривает архивы как объекты-контейнеры.Как Поставщик файловой системы запечатан, я думаю, вам пришлось бы написать свой собственный 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