none
Некорректная замена значения в XML RRS feed

  • Вопрос

  • Добрый день.

    Передо мною встала задача замены значения в XML документах.

    В документе есть ряд строк с такими данными:

    <root>
      <Param InDir="C:\Service\Magic Service\logs" OutDir="\\NAS3\Public\Services\Magic" Prefix="Host1_"></Param>
    </root>


    И таких записей в документе достаточно. И таких документов тоже не мало. Все это переезжает на другой СХД, и от чего необходимо в OutDir заменить "\\NAS3\ на сетевой диск "N:\"

    Всё это дело я обрабатываю скриптом:

        $Path = "C:\Archivator\Archivator_settings.xml"
        $Content = [xml](Get-Content $Path)
        $Content.Root.Param | Foreach {$_.OutDir = $_.OutDir -replace '\\NAS[34]', 'N:'}
        $Content.Save($Path)

    Через форич он пробегает по всем хостам, обращается к документу и в нем всё это дело заменяет.

    И тут появляется проблема. На выходе в ноде оказывается значение "\N:\", вместо ожидаемого "N:\".

    Подскажите из-за чего это, и как это обойти?

    6 сентября 2017 г. 7:13