我正在尝试找到一种方法来更改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
如果我点源它然后运行这个命令
Reset-InfoPathTemplateLink -FilePath“c:\ test2”-FileExtension“ .xml”-OldPath“PrintProcessor =”“” - NewPath“PrintProcessor ='”WinPrint“'”
WinPrint会添加到当前打印处理器的开头,这不是理想的选择。如果有人有关于如何使其工作的提示,或者如果他们可以提出更好的方法来做到这一点我会很感激
答案 0 :(得分:0)
这是您可以使用PowerShell替换文本文件中的模式的方法:
$path="c:\myPath.txt"
(Get-Content $path) -replace '(PrintProcessor=")(.*)(")','$1WinPrint$3' | Set-Content $path