Чтобы синхронизировать c файл с нашим сервером ECM, мне нужно отсканировать файл метаданных, который содержит следующие строки:
<data-items>
<item type="primary" id="OLL5638" module="PY" descriptor="Payroll">
<description>Leave Application Number - 1234</description>
</item>
<item type="secondary" id="123" module="PY" descriptor="Payroll">
<description>Joe Bloggs</description>
</item>
<item type="secondary" id="123" module="PY" descriptor="Payroll">
<description>Joe Bloggs</description>
</item>
Мне нужно изменить строку PRIMARY так, чтобы она принудительно сбой процесса 'docloader' в элементе PRIMARY, а затем попытка синхронизировать c файл с использованием элемента SECONDARY.
Мой файл PS1 выглядит следующим образом
$Path = "C\Temp\Tester\*.METADATA"
$SearchStr = <item type="primary" id="([A-Z]*\d*)" module="PY" descriptor="Testing">
$ReplTxt = <item type="primary" id="$1" module="PY" descriptor="Testing">
Get-ChildItem -Path $Path |
foreach{
(Get-Content $_ | foreach {$_ -replace $SearchStr, $ReplTxt)} | Set-Content $_ }
Я пробовал все перечисленные ниже и до сих пор не могу заставить его работать.
ДВОЙНЫЕ ЦИТАТЫ
$ SearchStr = "" $ ReplTxt = ""
ОДНО ЦИТАТЫ
$ SearchStr = '' $ ReplTxt = ''
REGEX ESCAPE
[Regex] :: escape ($ SearchStr =) [Regex] :: escape ($ ReplTxt =)
REGEX ESCAPE с одинарными кавычками [Regex] :: escape ($ SearchStr = '') [Regex] :: escape ($ ReplTxt = '')
REGEX ESCAPE с двойными кавычками [Regex] :: escape ($ SearchStr = <"item type = "primary" id = "([AZ] <em>\ d )" module = "PY" descriptor = "Testing"> ") [Regex] :: escape (" $ ReplTxt = ")
РУЧНЫЕ ПРОБЛЕМЫ - (я пробовал также с комбинациями одинарных и двойных кавычек), например: вставить обратную косую черту sh перед любой двойной цитатой
Любые указатели в правильном направлении будет принята с благодарностью.