Pre-Bis zu einer Datei an all CS-Datei im Verzeichnis und Unterverzeichnis mit Powershell

StackOverflow https://stackoverflow.com/questions/73892

  •  09-06-2019
  •  | 
  •  

Frage

Wie kann ich pre-Anh (Einsatz am Anfang der Datei) einer Datei auf alle Dateien eines Typs in Ordner und Unterordner mit Powershell?

Ich brauche eine Standard-Header-Datei an alle .cs hinzuzufügen und versuchte Powershell zu verwenden, so zu tun, aber während ich in der Lage war, es in ein paar Zeilen Code anhängen ich stecken geblieben war, wenn man versucht, es zu Pre-pend.

War es hilfreich?

Lösung

Hier ist ein sehr einfaches Beispiel, das Ihnen eine der Möglichkeiten, um zu zeigen, es getan werden könnte.

$Content = "This is your content`n"
Get-ChildItem *.cs | foreach-object { 
$FileContents = Get-Content -Path $_
Set-Content -Path $_ -Value ($Content + $FileContents)
}

Andere Tipps

Haben Sie keine Ahnung, aber wenn Sie den Code haben rund tun Sie es einfach in die andere Richtung anzuhängen. So etwas wie

  1. umbenennen vorhandene Datei,
  2. eine leere Datei die gleichen wie oben
  3. Namen erstellen
  4. anhängen Header neue leere Datei,
  5. anhängen umbenannten Datei zur vorherigen,
  6. löschen umbenannten Datei

Algorithmisch sprechen, brauchen Sie nicht wirklich eine temporäre Datei:

1) lesen, den Inhalt der Datei, die Sie ändern müssen

2) ändern Sie den Inhalt (als String, vorausgesetzt, Sie den Inhalt in einer Variablen namens Inhalt haben), wie diese: content = Header + Inhalt

3) mit dem Anfang der Datei suchen, wobei jede Sprache hat, ein Verfahren suchen oder eine Such äquivalent

4) schreiben den neuen Inhalt

5), die Länge der Datei an der Position, die durch den Dateizeiger zurückgegeben

Da haben Sie es, keine temporäre Datei. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top