5

我有一个正在运行的服务,它可以调用外部进程来修改文本流,然后再将其返回给服务。文本流从服务传递到标准输出上的外部进程,修改后的结果从标准输入上的服务读取。换句话说,外部进程(命令)可以用作文本“过滤器”。我想使用 powershell 脚本来修改文本流。我可以使用命令“powershell -executionpolicy bypass -noninteractive ./myscript.ps1”从 win 2008r2 上的服务成功启动脚本。

我可以使用 write-host cmdlet 使脚本将文本返回到标准输出上的服务。我的问题是我找不到在脚本中读取标准输入文本的方法。读取主机似乎不起作用,因为它需要交互式外壳。

我想避免将服务中的标准输出写入 tmp 文件并在脚本中读取该文件,因为服务是多线程的(一次可以启动多个外部命令)和 tmp 文件管理(锁定、唯一文件名等)是不希望的。

这是可能的还是我应该为此使用例如 Perl?Powershell 似乎很有吸引力,因为它预装在我所有的 win 2008 机器上。

4

1 回答 1

6

只是一个猜测 - 我会看看[Console]::In | gm -static

于 2010-05-05T04:32:59.097 回答