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