J'utilise -replace pour changer un chemin d'accès de la source à la destination. Cependant, je ne sais pas comment gérer le caractère \. Par exemple:
$source = "\\somedir"
$dest = "\\anotherdir"
$test = "\\somedir\somefile"
$destfile = $test -replace $source, $dest
Après cette opération, $ destfile est défini sur
"\\\anotherdir\somefile"
Quelle est la bonne façon de procéder pour éviter la triple barre oblique inverse dans le résultat?
Essayez ce qui suit:
$source = "\\\\somedir"
Vous ne faisiez correspondre qu'une seule barre oblique inverse lors du remplacement, ce qui vous a donné les trois \\\
au début de votre chemin.
La barre oblique inverse est un caractère d'échappement regex
, donc \\
sera considéré comme correspondant à un seul \
et pas deux \\
. Comme la première barre oblique inverse est le caractère d'échappement et n'est pas utilisé pour correspondre.
Vous pouvez également gérer les barres obliques inverses en utilisant la fonction d'échappement regex
.
$source = [regex]::escape('\\somedir')