Fügen Sie Inhalt in die Powershell-Textdatei ein
Möchte ich hinzufügen, dass content in der Mitte einer text-Datei in Powershell. Ich bin auf der Suche nach einem bestimmten Muster, dann hinzufügen, den Inhalt nach. Hinweis: dieses ist in der Mitte der Datei.
Was ich derzeit habe ist:
(Get-Content ( $fileName )) |
Foreach-Object {
if($_ -match "pattern")
{
#Add Lines after the selected pattern
$_ += "`nText To Add"
}
}
} | Set-Content( $fileName )
Aber das funktioniert nicht. Ich gehe davon aus, da $_ ist unveränderlich, oder weil Sie den + = - operator nicht ändern, richtig?
Was ist der Weg zum Anhängen von text an $_, der sich in den folgenden Set-Inhalt nennen?
Kommentar zu dem Problem
Das einzige problem mit dem original ist, dass Sie aber keine Ausgabe erhalten haben. Fügen Sie einfach $_ nach dem if () {} - block ...
InformationsquelleAutor der Frage Jeff | 2009-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die Ausgabe der extra text z.B.
Können Sie nicht brauchen die zusätzlichen `n", da PowerShell Zeile beenden jede Zeichenfolge für Sie.
InformationsquelleAutor der Antwort Keith Hill
Wie wäre es damit:
Ich denke, das ist ziemlich straight-forward. Die einzige nicht-offensichtliche Sache ist die "$&", bezieht sich auf das, was war abgestimmt durch "Muster". Mehr info: http://www.regular-expressions.info/powershell.html
InformationsquelleAutor der Antwort dan-gph
Konnte dieses problem gelöst werden durch die Verwendung von arrays. Eine text-Datei ist ein array von strings. Jedes element ist eine Zeile text.
InformationsquelleAutor der Antwort Jan Janssens