如何从调用该 PowerShell 脚本的 C# 代码响应 Read-Host?

2024-03-25

我需要从 C# 代码中运行 PowerShell 脚本。那很容易。但是,我的 PowerShell 脚本包含几个 Read-Host 命令。通常,脚本执行将停止,用户应手动向 PowerShell 控制台输入一些值作为答案。但我需要的是从执行并控制该脚本流程的 C# 中的相同代码回答这些读取主机请求。换句话说,我需要我的脚本在某个时刻停止并等待来自 C# 代码的一些数据输入,然后获取它并继续执行。

我找到了如何从 C# 运行 PS,找到了如何在启动 PS 脚本时将参数或初始变量从 C# 传递到 PS 脚本,但我找不到任何方法如何使我的脚本等待来自主机应用程序的某些数据,接收它并在主机应用程序中继续执行,所有这些都是在脚本运行时而不是在其启动时执行。

您能否引导我找到可能有帮助的搜索方向或代码?


您可以致电WriteLine() on the StandardInput的过程。这将为一个人提供数据Read-Host在脚本中。

为此请确保UseShellExecute各自的ProcessStartInfo被设定为false和它的RedirectStandardInput to true.

例如

    Process p = Process.Start(new ProcessStartInfo()
    {
        FileName = "powershell",
        Arguments = @"C:\Users\Konstantin\ps.ps1",
        UseShellExecute = false,
        RedirectStandardInput = true,
    });

    p.StandardInput.WriteLine("abc");

将向第一个提供“abc”Read-Host脚本的C:\Users\Konstantin\ps.ps1.

如果还有更多Read-Hosts call WriteLine()再次。或者您可以使用字符串连接StandardInput.NewLine只需使用Write。例如

p.StandardInput.Write("abc" + StandardInput.NewLine + "xyz" + StandardInput.NewLine);

将为第一个提供“abc”,为第二个提供“xyz”Read-Host.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从调用该 PowerShell 脚本的 C# 代码响应 Read-Host? 的相关文章

  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • 获取从属性构造函数内部应用到哪个属性的成员?

    我有一个自定义属性 在自定义属性的构造函数内 我想将属性的属性值设置为属性所应用到的属性的类型 是否有某种方式可以访问该属性所应用到的成员从我的属性类内部 可以从 NET 4 5 using CallerMemberName Somethi
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu

随机推荐

  • ClickOnce 快捷方式无法启动应用程序

    我在 VS 2017 中创建了一个使用 ClickOnce 安装的 WPF 应用程序 将解决方案部署到网络位置后 我可以通过访问 application 链接在我的 64 位 Windows 10 计算机上安装 但是 该应用程序安装后无法在
  • 完成时更新整个

    编辑单元格后 我很难重新渲染 PrimeFaces 数据表 更改一个单元格中的值可能会更改其他单元格中的条目 因此需要刷新整个表格 这是 JSF 页面
  • 如何与 Kivy GUI 一起运行 Tornado 事件循环?

    我的客户端应用程序使用KivyGUI Kivy 有自己的事件循环 并使用 WebSocket 协议连接到服务器Tornado Tornado 也有一个事件循环 这就是连接部分是异步的原因 我希望用户在 Tornado 客户端运行监听服务器消
  • 如何删除 NSMutableArray 中具有相同属性值但只有一个的所有对象

    我有一个带有 url 字符串属性和标题的历史对象 我想搜索 URL 包含搜索字符串的对象的所有历史记录 然后删除所有重复项 例子 我有一系列历史对象 其中 20 个都是 https www google com https www goog
  • C# Winforms 复选框不指示焦点

    如果复选框是 Tab 键顺序 0 中的第一个控件 则在显示表单时并不表示它具有焦点 事实上 它确实具有焦点 您可以通过按空格键来选中 取消选中控件来演示这一点 如果您先按 Tab 键 然后按 Shift Tab 键返回到该复选框 则标签会出
  • 闪亮滑块输入从最大到最小

    是否可以制作一个以降序显示值的 sliderInput 从左到右 例如 5 4 3 2 1 runApp list ui fluidPage sliderInput test min 5 max 1 value 3 step 1 serve
  • 在Java中将BufferedImage转换为Mat(OpenCV)[重复]

    这个问题在这里已经有答案了 我试过这个link https stackoverflow com questions 14958643 converting bufferedimage to mat in opencv并有下面的代码 我的程序
  • WPF 窗口不会释放其资源,直到程序终止

    我一直在阅读有关 WPF 内存处理的内容 并跟踪了前 5 个和前 8 个内存泄漏陷阱 但在我目前的情况下没有任何帮助 我的软件有一个问题 WPF 在程序终止之前不会释放内存 如果我永远让它消失 无论我做什么都会导致 OutOfMemoryE
  • PHP - 从文件名字符串中删除扩展名

    我想从文件名中删除扩展名 并获取文件名 例如file xml gt 文件 image jpeg gt 图像 test march txt gt test march 等 所以我写了这个函数 function strip extension
  • 在 irb 中重新加载 ruby​​gems?

    我现在有这个脚本 def r this require this puts this is now loaded rescue LoadError puts The gem this is missing puts Should I ins
  • 为什么 List.ForEach 比标准 foreach 更快?

    考虑一下 必备条件 The alphabet from a z List
  • 如何使用 Erlang 发送推送通知?

    我正在尝试使用 Erlang 向 APNs 发送推送通知 这是我到目前为止想出的代码 module apnstest2 export connect 0 connect gt application start ssl ssl seed s
  • 在Python re中仅匹配unicode字母

    我有一个字符串 我想从中提取 3 个组 19 janvier 2012 gt 19 janvier 2012 月份名称可以包含非 ASCII 字符 因此 A Za z 对我不起作用 gt gt gt import re gt gt gt r
  • R-因子箱线图中的组抖动? [复制]

    这个问题在这里已经有答案了 是否可以将抖动分组到像我这样的箱线图中 以便数据点与每个市场的因素一致 现在它正在按市场名称排列 我给它们上了颜色以显示哪些应该被分组 My code p lt ggplot droplevels subset
  • setOffscreenPageLimit() 如何通过保留更多屏幕外 Fragment 来提高 ViewPager 性能?

    我有一个ViewPager控制五个Fragments 当我从Fragment在索引 1 到Fragment在索引 0 处 动画中有短暂的停顿我想消除的 目前 我没有打电话setOffscreenPageLimit 所以我知道Fragment
  • 处理 php 页面错误的最佳方法?

    现在我的页面看起来像这样 if GET something somevalue output somecode make a DB query fetch a row row stmt gt Fetch PDO ASSOC if row n
  • 立即开始首次调用 IntervalObservable

    我正在使用一个IntervalObservable连续调用我的应用程序的服务器端 我可以订阅和取消订阅 Oberservable 一切正常 但有一个例外 对服务器的第一次调用会延迟 但我希望它是即时的 该人的行为IntervalObserv
  • C# 数据表查询不存在的连接

    我对 C LINQ 查询有点困惑 我有一个表格 其值如下所示 DataTable tableold new DataTable tableold Columns Add Dosage typeof int tableold Columns
  • 如何找到Python中内置函数的复杂度

    我有问题的特殊情况 但很高兴知道它是否适用于任何函数 所以我想找到字符串中子字符串的位置 好的 在Python中有一个查找方法 https docs python org 2 library string html string find这
  • 如何从调用该 PowerShell 脚本的 C# 代码响应 Read-Host?

    我需要从 C 代码中运行 PowerShell 脚本 那很容易 但是 我的 PowerShell 脚本包含几个 Read Host 命令 通常 脚本执行将停止 用户应手动向 PowerShell 控制台输入一些值作为答案 但我需要的是从执行