Rsync と ICACLS を使用して 2 つの (ウィンドウ) ディレクトリを同期しています。そのためには、同じパスをいくつかの「スタイル」に変換する必要があります: cygwin *nix、リモート *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/
誰かが上記の正規表現で私を助けてくれますか? どうもありがとう!