代码之家  ›  专栏  ›  技术社区  ›  Joey

PowerShell中是否有在其他文件系统中提供虚拟文件系统的方法?

  •  1
  • Joey  · 技术社区  · 15 年前

    我知道您可以编写自定义PSDrives的支持。但这些始终是文件系统的根。如果有一种方法允许vfs从文件系统的任意节点开始,比如使用 Set-Location 输入存档文件,并将其作为文件夹使用。(有点像这样)。

    有什么方法可以做到这一点吗?我知道,要使它正确运行是一项工作,但目前我更感兴趣的是它是否可能 完全。

    埃塔: 我不想要的是为我输入的每一个存档创建一个新的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> _
    
    3 回复  |  直到 13 年前
        1
  •  2
  •   dahlbyk    15 年前

    您所描述的是一个文件系统提供程序,它还将归档文件视为容器对象。AS FileSystemProvider 是密封的,我想你得自己写 NavigationCmdletProvider 这就是你的魔法。

        2
  •  0
  •   Richard Berg    15 年前

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

    New-PsDrive -Scope Global -Name MyMod -PSProvider FileSystem -Root (split-path $profile | join-path -child Modules)
    dir MyMod:\
    
        3
  •  0
  •   Shay Erlichmen    15 年前

    你需要写一个 provider , here is an example 对于SourceSafe的提供程序(旧的但仍然相关)