2013-09-29 2 views
0

Я пытаюсь найти способ изменить неизвестный текст (может быть что угодно) в файле XML для миграции принтера. Текст, который находится под вопросом: PrintProcessor = "hpcpp111"Заменить текст между кавычками в XML

Раздел «Процессор печати» может содержать все, что зависит от модели, типа и драйвера принтера. Я бы предпочел использовать powershell, если это возможно, поскольку я пытаюсь понять сценарии и как все это работает, но я считаю это немного запутанным. Возможно, мне придется вручную редактировать тысячи этих файлов, поскольку мы переносим 5 500 принтеров. Я нашел некоторый код, который получает его закрыть, например

function Reset-InfoPathTemplateLink { 
Param(
[string]$FilePath, 
[string]$FileExtension, 
[string]$OldPath, 
[string]$NewPath 
) 
$files = Get-ChildItem $FilePath -Filter $FileExtension 
foreach ($file in $files) { 
(Get-Content $file.fullname) | 
ForEach-Object {$_ -replace $OldPath,$NewPath} | 
Set-Content $file.fullname 
} #end foreach 
} #end function 

и если я точка-исток ее, а затем запустить эту команду

Reset-InfoPathTemplateLink -FilePath «C: \ test2» -FileExtension ".xml "-OldPath" PrintProcessor = "" "-NewPath" PrintProcessor = '"WinPrint"' "

WinPrint добавляется в начало текущего процессора печати, который не идеален. Если у кого есть советы о том, как получить эту работу, или если они могут предложить лучший способ сделать это, я был бы признателен

+0

Итак, вы пытаетесь изменить PrintProcessor = «ничего» на PrintProcessor = «Winprint»? –

+0

Добавьте пример данных и желаемый результат. – vonPryz

ответ

0

это, как вы можете использовать PowerShell для замены шаблона в текстовом файле:

$path="c:\myPath.txt" 
(Get-Content $path) -replace '(PrintProcessor=")(.*)(")','$1WinPrint$3' | Set-Content $path 
Смежные вопросы