【问题标题】:The best way to get UNC path from local path从本地路径获取 UNC 路径的最佳方法
【发布时间】:2023-04-02 05:40:01
【问题描述】:

我有类似C:\Program Files\SomeApp 的路径,该路径位于远程主机上,例如\\host1。我只想用管理员共享替换驱动器号,例如C:\ → C$ 并在此路径中添加一个带有主机名的 UNC 前缀,最终得到如下结果:\\host1\C$\Program Files\SomeApp。驱动器号可以有任何值,因此我们不能对其进行硬编码。

我是通过以下方式完成的:

$dir = "C:\Program Files\SomeApp"
$hostIp = "10.1.1.1"

$dir -replace '.:',"\\$hostIP\$($(Split-Path -Qualifier $dir).TrimEnd(':'))$"

但是,它看起来有点不清楚。请提出一个更好的解决方案。

【问题讨论】:

    标签: powershell unc


    【解决方案1】:

    只需将字符串开头的驱动器号和冒号替换为主机部分,驱动器号后跟$。路径的其余部分将保持不变。

    $dir -replace '^(.):', "\\$hostIp\`$1$"
    

    在$1 中转义$ 可防止PowerShell 尝试将对捕获组的引用扩展为变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多