0

我正在尝试找到一种方法来更改 XML 文件中的未知文本(可能是任何内容)以进行打印机迁移。有问题的文本是 PrintProcessor="hpcpp111"

打印处理器部分可以包含任何内容,因为这取决于打印机型号、类型和驱动程序。如果可能的话,我更喜欢使用 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 被添加到当前打印处理器的开头,这并不理想。如果有人有关于如何让它工作的提示,或者如果他们能提出更好的方法,我将不胜感激

4

1 回答 1

0

这是您可以使用 PowerShell 替换文本文件中的模式的方法:

$path="c:\myPath.txt"
(Get-Content $path) -replace '(PrintProcessor=")(.*)(")','$1WinPrint$3' | Set-Content $path
于 2013-09-30T09:30:57.993 回答