2013-09-29 66 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 

,如果我點源,然後運行該命令

復位,InfoPathTemplateLink -FilePath「C:\ TEST2」 -FileExtension「.xml「-OldPath」PrintProcessor =「」「-NewPath」PrintProcessor ='「WinPrint」'「

WinPrint會被添加到當前打印處理器的開頭,這並不理想。如果任何人有關於如何得到這個工作,或者他們可以建議這樣做的更好方法的提示我將不勝感激

+0

那麼,你是否試圖將PrintProcessor =「anything」更改爲PrintProcessor =「Winprint」? –

+0

添加樣品數據和所需的輸出。 – vonPryz

回答

0

這是你可以使用PowerShell到一個文本文件中的替換模式:

$path="c:\myPath.txt" 
(Get-Content $path) -replace '(PrintProcessor=")(.*)(")','$1WinPrint$3' | Set-Content $path