我有>> which nume1 -all
之类的路径,此路径位于远程主机上,例如C:\Program Files\SomeApp
。我只想用管理员共享替换驱动器号,例如\\host1
→C:\
并在此路径中添加一个带有主机名的UNC前缀,最终获得如下结果:C$
。驱动器号可以具有任何值,因此我们无法对其进行硬编码。
我是通过以下方式完成的:
\\host1\C$\Program Files\SomeApp
然而,它看起来有点不清楚。请提出更好的解决方案。
答案 0 :(得分:3)
只需将字符串开头的驱动器号和冒号替换为主机部分和驱动器号后跟$
。路径的其余部分将保持不变。
$dir -replace '^(.):', "\\$hostIp\`$1$"
转义$
中的$1
会阻止PowerShell尝试将对捕获组的引用扩展为变量。