powershell - 在同一范围内从 C# 调用多个 powershell 命令

标签 powershell

基本上我想做的是:

第1步)调用whatever.ps1(或脚本 block ),脚本类似于: $hello =“世界”

第 2 步)调用 Get-Variable -name hello

第 3 步)检索 Get-Variable 的输出

我不知道如何干净地做到这一点,因为每次我调用脚本 block 时都会创建不同的作用域。

最佳答案

您有几个选择。如果可以的话,最简单的方法是更改​​脚本:

$global:hello = "world"

但是,使用全局变量通常是一种不好的做法。因此,另一种方法是让脚本输出“Hello”,然后捕获管道调用的输出。只需将您的初始脚本更改为:

"world"

然后调用它并获取 pipeline.Invoke() 的输出并获取第一个对象。

您还可以更改调用脚本的方式。将字符串传递给 CreatePipeline,如下所示:

$hello = foo.ps1 

然后检索变量 $hello 的内容。

关于powershell - 在同一范围内从 C# 调用多个 powershell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/970863/

相关文章:

xml - 比较对象cmdlet在文本文件中不能与 “<!--”一起使用

powershell - 运行命令时自定义 powershell 背景颜色会恢复吗?

c# - 使用powershell加载C# DLL,[System.Type]::GetType返回null

testing - 在 Windows Powershell 中选择用于 Web UI 测试自动化的下拉列表选项

sql-server - 如何防止MS SQL数据库中出现重复项?

powershell - 如何使用 PowerShell 获取 cloudformation 堆栈的 EC2 实例 IpAddress?

powershell - 如何仅在 VS 2012 中的 Web 部署发布任务之前执行 PowerShell 脚本?

windows - PowerShell [wmiclass] Win32_Process.Create() 然后等待批处理文件完成

powershell - 使用 SilentlyContinue 时如何处理写入信息管道输出

windows - 使用 puppet exec 检测是否已安装 Windows 服务