XMLファイルを取り込んでスクリプトを作成しようとしています。一致する条件を探します。新しい行のアスタリスクが追加されたら、ファイルを調べてすべてのXMLタグを削除し、プレーンテキストファイルのデータ。このPowerShellスクリプトをより効率的にするにはどうすればよいですか?
スクリプトは小さな入力XMLファイルでテストされていますが、大丈夫ですが、大規模なXMLファイルを渡すと永遠になります(1時間以上実行しても、私はちょうどそれを停止した)。
私は非常に非効率な方法で仕事をしているに違いないと思っています。
# Takes input XML File, cleans up XML elements, outputs plain text file
$FileName = "C:\Users\someguy\Desktop\input.xml"
$Pattern = "ProcessSpecifier = ""true"""
$FileOriginal = Get-Content $FileName
[String[]] $FileModified = @()
Foreach ($Line in $FileOriginal)
{
$FileModified += $Line
if ($Line -match $Pattern)
{
#Add Lines after the selected pattern
$FileModified += "*************isActive=true*****************"
}
}
$FileModified -replace "<[^>]+>", "" | Out-File C:\Users\someguy\Desktop\Output.txt
'+ = $ Line'はあなたがそれを呼び出すたびに新しい配列を作成します。 ArrayListを試してください。 –
対象とするPowerShellのバージョンは? –
私たちが話しているファイルのサイズのおおよその見積もりはありますか? – whatever