我正在使用 Rsync 和 ICACLS 来同步两个(windows)目录,为此,我必须将相同的路径转换为多个“样式”:cygwin *nix、remote *nix、UNC。(见下面的例子)
我正在使用以下代码来执行此操作,虽然它可以工作,但我使用的正则表达式肯定会变得更健壮和更好地工作(如您所见,我正在替换替换,我发现充其量是丑陋的...)
$remote="remotesrv"
$path="g:\tools\example\"
$local_dos=$path
$remote_dos="\\$remote\"+(($local_dos -replace "^\w","$&$") -replace "(:\\)|(\\)","\")
$local_nix="/cygdrive/"+($local_dos -replace "(:\\)|(\\)","/")
$remote_nix="//$remote/"+(($local_dos -replace "^\w","$&$") -replace "(:\\)|(\\)","/")
"Local DOS : $local_dos"
"Remote DOS : $remote_dos"
"Local *nix : $local_nix"
"Remote *nix: $remote_nix"
输出是:
Local DOS : g:\tools\example\
Remote DOS : \\remotesrv\g$\tools\example\
Local *nix : /cygdrive/g/tools/example/
Remote *nix: //remotesrv/g$/tools/example/
有人可以帮我解决上面的正则表达式吗?非常感谢!