Domanda

So che si può scrivere il supporto per PSDrives personalizzati. Ma queste sono sempre una radice di un file system. Quale sarebbe bello se ci fosse un modo per consentire VFS partono da nodi arbitrari del file system, come l'utilizzo Set-Location di inserire file di archivio forse e utilizzarli come se fossero cartelle. (Un po 'come Far fa questo).

Esiste un modo per raggiungere questo obiettivo? Lo so, sarebbe un po 'di lavoro per farlo bene e di lavoro, ma al momento io sono più interessato se non sia possibile a tutti.

ETA: Quello che non voglio è una nuova PSDrive per ogni archivio io entro, quindi la seguente non è in realtà quello che sto cercando:

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

ma

PS C:\Path> Set-Location stuff.zip
PS C:\Path\stuff.zip> _
È stato utile?

Soluzione

Quello che stai descrivendo è un provider FileSystem che considera anche gli archivi per essere oggetti contenitori. Come FileSystemProvider è sigillato, penso che si dovrebbe scrivere il proprio NavigationCmdletProvider che fa la tua magia.

Altri suggerimenti

Certo. In realtà, si può già fare questo in una certa misura senza scrivere codice snap-in. Ad esempio:

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

È necessario scrivere un fornitore , ecco un esempio per un provider per SourceSafe (vecchio ma ancora attuale)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top