Ich habe einen Dienst, der einen externen Prozess ausführen kann, um einen Textstream zu ändern, bevor es an den Dienst zurückgegeben wird. Der Text-Stream wird vom Dienst an den externen Prozess auf stdout übergeben und das modifizierte Ergebnis wird vom Dienst auf stdin gelesen. Der externe Prozess (Befehl) kann mit anderen Worten als Text "Filter" verwendet werden. Ich möchte ein Powershell-Skript verwenden, um den Text-Stream zu ändern. Ich kann ein Skript vom Dienst auf Gewinn 2008r2 mit dem Befehl "powershell -executionpolicy bypass -noninteractive ./myscript.ps1" erfolgreich starten.Stdin zu Powershell-Skript
Ich kann das Skript Text mit dem Cmdlet write-host an den Dienst auf stdout zurückgeben. Mein Problem ist, dass ich keine Möglichkeit finde, den Text auf stdin im Skript zu lesen. Read-Host scheint nicht zu funktionieren, da es eine interaktive Shell benötigt.
Ich möchte vermeiden, die Stdout aus dem Dienst in eine tmp-Datei schreiben und lesen Sie diese Datei im Skript, wie der Dienst Multithread ist (kann mehr als einen externen Befehl gleichzeitig starten) und tmp Dateiverwaltung (Sperren, eindeutige Dateinamen usw.) ist nicht erwünscht.
Ist das möglich oder soll ich zum Beispiel Perl dafür verwenden? Powershell scheint überzeugend, da es auf all meinen Win-2008-Maschinen vorinstalliert ist.
Danke. $ line = [Konsole] :: In.ReadLine() hat den Trick gemacht. – Stefan