2017-11-06 4 views
-1

Ich führe mehrere Skripts in PowerShell ISE aus, damit ich eine bestimmte Codezeile in vielen XML-Dokumenten entfernen kann. Der Code, den ich geraten wurde, zu verwenden, ist die folgende:PowerShell ISE-Skript Replizieren von Daten

Get-Content .\AdamInfTest.xml | Get-Content .\AdamInfTest.xml | Where-Object {$_ -notmatch '<!DOCTYPE'} | Set-Content .\Complete\AdamInfTestOut.xml 

Dies wird die Codezeile in der XML-Datei mit dem Text ‚DOCTYPE‘ entfernen und das funktioniert. Beim Ausführen des Skripts repliziert die ausgegebene Datei jedoch den gesamten Dokumentcode immer wieder, bis die Datei beunruhigend groß wird (etwa 30 MB, wenn das nicht geskriptete XML etwa 60 KB groß ist).

Ich bin mir nicht sicher, warum das passiert und jede Hilfe würde geschätzt werden - Danke!

+0

Verwenden Sie nur einen Get-Content –

+1

Dieser 'Get-Content. \ AdamInfTest.xml | Get-Content. \ AdamInfTest.xml' macht das nicht, da dies bedeutet, dass Sie die gesamte '. \ AdamInfTest.xml' für jede Zeile in der'. \ AdamInfTest.xml' Datei erneut lesen. Ich schätze, dass 60Kb mal die Anzahl der Zeilen in der. \ AdamInfTest.xml (was ich nicht weiß) ist etwa 30 MB ... Mit anderen Worten, was passiert, wenn Sie einen der 'Get-Content. \ AdamInfTest entfernen. xml? – iRon

+0

Danke das hat mein Problem gelöst! Nicht alle Helden tragen Umhänge – devAds

Antwort

1

Dieser Get-Content. \ AdamInfTest.xml | Get-Content. \ AdamInfTest.xml macht das nicht, da dies bedeutet, dass Sie die gesamte. \ AdamInfTest.xml für jede Zeile in der. \ AdamInfTest.xml-Datei erneut lesen. Ich denke, dass 60Kb mal die Anzahl der Zeilen in der. \ AdamInfTest.xml (was ich nicht weiß) ist etwa 30 MB ... Mit anderen Worten, was passiert, wenn Sie einen der Get-Content entfernen. \ AdamInfTest.xml? -

Verwandte Themen