【问题标题】:Is there a way in Powershell to provide virtual file systems in other file systems?Powershell 中有没有办法在其他文件系统中提供虚拟文件系统?
【发布时间】:2009-07-22 13:57:59
【问题描述】:

我知道您可以编写对自定义 PSDrive 的支持。但这些始终是文件系统的根。如果有一种方法允许 VFS 在文件系统的任意节点上启动,例如使用Set-Location 输入存档文件并将它们当作文件夹一样使用,那该多好。 (有点像 Far 这样做)。

有什么方法可以实现吗?我知道,要让它正确并正常工作需要一些工作,但目前我更感兴趣的是它是否可能

预计到达时间:我不想要的是我输入的每个存档都需要一个新的 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> _

【问题讨论】:

    标签: powershell vfs powershell-provider


    【解决方案1】:

    您所描述的是一个文件系统提供程序,它也将档案视为容器对象。由于FileSystemProvider 是密封的,我认为您必须编写自己的NavigationCmdletProvider 才能发挥您的魔力。

    【讨论】:

      【解决方案2】:

      您需要为 SourceSafe 的提供者写一个providerhere is an example(旧但仍然相关)

      【讨论】:

        【解决方案3】:

        当然。事实上,您已经可以在某种程度上做到这一点,而无需编写任何管理单元代码。例如:

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

        【讨论】:

        • 重点是,我特别想要一个新的 PSDrive,而是扩展现有文件系统的语义。我会更新问题。
        • 看起来有点像subst 对我来说你在那里做什么。
        • 啊,我误解了你的要求。
        猜你喜欢
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        • 2013-04-28
        • 1970-01-01
        • 2010-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多