重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
上一次的博客中我们介绍了最为基本的方法在应用程序中使用PowerShell引擎,当然这是最为简单的使用方式虽然简单当然也很有效,只不过不要忘记当不想再使用 RunspaceInvoke 实例的时候调用
10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有黄山区免费网站建设让你可以放心的选择与我们合作。实例的Dispose() 方法对其资源进行释放,也许你也已经尝试在你的应用程序中使用了这种方法
或许你也已经发现这中方法有一个巨大的问题 那就是通过简单的代码创建RunspaceInvoke 但是只能同步执行并且获取结果,也许这种方式在一般情况下并不是什么大问题,在需要长时间的执行的脚本或者命令时候 Invoke()方法将会阻塞当前线程,使得你不得不进行长时间的等待,不得不说这点的确有点让人不爽,我们之前说过选择的简单的办法就要丧失其灵活性。
聪明的你似乎觉得我们今天的主题应该是异步运行了? 我不得不Say No 因为在讨论异步运行之前还有很多事情要做。
So 你就应该知道我们今天讨论的主题是如何开始初步的使用Runspace 和PipeLine
一般来说 如果想在应用程序中使用PowerShell 引擎 我们只要创建Pipeline 就可以完成
但是现在我们还不能创建因为这是依靠Runspace 实例的CreatePipeline() 方法创建
而现在我们都没有创建Runspace 对象实例,Runspace 实例都要通过 RunspaceFactory 的静态方法来创建并且在PowerShellV1 版本时候创的Runspace 实例都是Local Runspace 意味这你讲不能创建基于远程计算机会话的 Runspace 当然 V1版本已经太过久远 我们已经无需思考这个问题
好了说了这么多 下面我们应该看实际代码
事实上代码简单到可以非常容易的理解
我们使用了无配置的静态方法创建了新的Runspace 对象 当然这是使用默认配置
紧接着 我们创建了管道,并且是一个完整的管道 因为我们给管道中放置了新的命令,
最后就像之前一样我们使用Invoke执行了管道中的命令,
请注意创建管道前 Runspace 状态要处于Opened 状态 虽然此时依然可以创建管道但是系统会引发异常
同样CreatePipeline 方法还有另外一个重载接受两个参数
意思是当true 时候 命令将会记录在命令历史记录中以方便使用Get-history 进行查找调用
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。