我正在尝试使用 C# GUI 客户端包装已经制作的 powershell 脚本。
该脚本根据用户的输入进行操作,并根据它们进行输出。
我想获得 powershell 输出,将它们显示给我的 C# 客户端,然后根据他的选择输入输入。
这是我的脚本,下面的代码是我想出的,但它不起作用。(我只能在最后得到输出,并且只有当我的 powershell 脚本中没有 Read-Host 时)。希望它对如何有所帮助。
Write-Host
Write-Host 'Hello World!'
Write-Host "Good-bye World! `n"
$option = Read-Host "Please enter your number"
switch ($option){
"1"
{
Write-Host "jack"
}
"2"
{
Write-Host "john"
}
"3"
{
Write-Host "joe"
}
}
public void WrapPowerShell()
{
string directory = Directory.GetCurrentDirectory();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"powershell.exe";
startInfo.Arguments = string.Format(@"& '{0}'", directory + @"\hello.ps1");
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = false;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();
// Assert.IsTrue(output.Contains("StringToBeVerifiedInAUnitTest"));
string errors = process.StandardError.ReadToEnd();
}
非常感谢您的回答!