我有一个服务运行,可以调用外部进程来修改文本流,然后再将其返回到服务.文本流在stdout上从服务传递到外部进程,并且从stdin上的服务读取修改后的结果.换句话说,外部进程(命令)可以用作文本"过滤器".我想使用powershell脚本来修改文本流.我可以使用命令"powershell -executionpolicy bypass -noninteractive ./myscript.ps1"从win 2008r2上的服务成功启动脚本.
我可以使用write-host cmdlet使脚本将文本返回到stdout上的服务.我的问题是我找不到在脚本中读取stdin上的文本的方法.Read-host似乎不起作用,因为它需要一个交互式shell.
我想避免将stdout从服务写入tmp文件并在脚本中读取该文件,因为服务是多线程的(一次可以启动多个外部命令)和tmp文件管理(锁定,唯一文件名等)是不希望的.
这是可能的还是我应该使用例如Perl?Powershell似乎引人注目,因为它预装在我所有的win 2008机器上.