2016-03-25 10 views
0

Es ist ziemlich praktisch, Linux Shell zu verwenden, um etwas Inhalt an eine Datei anzuhängen, indem man Pipelinefunktionen verwendet und Stream-Operationen dies tun würden.Wie füge ich eine Zeile in jede Datei ein?

In PowerShell wird die Pipeline jedoch auf Objektebene und nicht auf Dateiebene verwendet. Dann, wie kann ich zum Beispiel eine Zeile "helloworld" in eine Liste von Dateien einfügen, um ihre erste Zeile zu werden?

Antwort

2

Es ist nicht so trivial, aber Sie können dies tun:

Get-ChildItem | foreach {$a = Get-Content $_ 
        Set-Content $_ -Value "hi", $a} 

Tho ehrlich zu sein ich es glaube entspricht Ihrer Definition einer Pipeline.

+1

'Get-ChildItem | ForEach-Object {$ ('hi'; Get-Inhalt $ _) | Set-Content $ _} ', oder kürzer' ls | % {$ ('hi'; gc $ _) | sc $ _} '. Es ist mehr oder weniger dasselbe wie in einer Linux-Shell. –

+0

Yup sogar besser als eine temporäre Variable. – Olegp

+0

Beachten Sie, dass Sie, obwohl Sie keine explizite Variable benötigen, immer noch die gesamte Datei im Speicher lesen, bevor Sie sie auf die Festplatte schreiben. –

Verwandte Themen