Powershell zum Ersetzen von Text in mehreren Dateien, die in vielen Ordnern gespeichert sind

8

Ich möchte einen Text in mehreren Dateien und Ordnern ersetzen. Der Ordnername ändert sich, aber der Dateiname ist immer config.xml.

%Vor%

Wenn ich das obige Skript ausführe funktioniert es, aber es schreibt den gesamten Text in config.xml etwa 20 mal. Was ist los?

    
aston_zh 04.02.2014, 17:01
quelle

3 Antworten

14

$ filename ist eine Sammlung von System.IO.FileInfo objects . Sie müssen eine Schleife ausführen, um den Inhalt für jede Datei zu erhalten: Dies sollte tun, was Sie wollen:

%Vor%     
Loïc MICHEL 04.02.2014, 17:14
quelle
6

$ filename ist ein Array von Dateinamen, und es versucht, alle auf einmal zu machen. Probieren Sie es nacheinander aus:

%Vor%     
mjolinor 04.02.2014 17:15
quelle
3

Im Allgemeinen sollten Sie die Pipeline verwenden und die ForEach-Object und / oder Where-Object CmdLets kombinieren.

In Ihrem Fall möchte dies etwas ähnlich wie:

%Vor%

Was man etwas abkürzen kann zu:

%Vor%     
Maxime Labelle 04.02.2014 17:21
quelle

Tags und Links