2010-05-04 23 views
5

Servisine geri gönderilmeden önce bir metin akışını değiştirmek için harici bir işlemi başlatan bir hizmet çalışmam var. Metin akışı, hizmetten stdout üzerindeki harici işleme aktarılır ve değiştirilen sonuç, stdin üzerindeki hizmetten okunur. Harici işlem (komut) başka bir deyişle bir metin "filtre" olarak kullanılabilir. Metin akışını değiştirmek için bir powershell komut dosyası kullanmak istiyorum. "Powershell -executionpolicy bypass -noninteractive ./myscript.ps1" komutunu kullanarak 2008r2 kazanmasında hizmetten bir betik başlatabilirim.Stdin to powershell komut dosyası

Komut dosyasını, yazım ana makine cmdlet'ini kullanarak metni stdout'taki hizmete geri döndürebilirim. Benim problemim, senaryodaki stdin'deki metni okumak için bir yol bulamıyorum. Okuma sunucusu etkileşimli bir kabuk gerektirdiğinden işe yaramıyor.

I ve tmp dosya yönetimi (kilitleme (daha bir harici bir anda komuta daha başlatabilirsiniz) bir tmp dosyasına hizmetinden stdout'u yazılmasını önlemek ve hizmet okuyuculu olarak senaryodaki bu dosyayı okumak istiyorum, benzersiz dosya isimleri vb. istenmez.

Bu mümkün mü yoksa örneğin Perl kullanmalı mıyım? Powershell, tüm kazananlar 2008 makinelerine önceden kurulduğundan zorlayıcı görünüyor.

cevap

5

Sadece bir tahmin - Ben [Console]::In | gm -static bir göz attı.

+3

Teşekkürler. $ line = [Konsol] :: In.ReadLine() hile yaptı. – Stefan

İlgili konular