我需要从C#执行powershell脚本,并在程序提示时“输入”响应

时间:2017-12-11 16:57:09

标签: c# windows powershell visual-studio-2015 command-prompt

编辑:我改变了很多问题

我一直在努力尝试从C#执行powershell命令并在提示时向其发送用户输入

这是我的代码>

我想听一个提示并在程序要求时输入一些数据

例如,如果我想执行命令ftp,然后当它提示我输入时,我想键入quit。我可以用Powershell做到这一点吗?

    private string RunScript(List<string> scriptText)
    {
        StringBuilder stringBuilder = new StringBuilder();
        Runspace runspace = RunspaceFactory.CreateRunspace();
        runspace.Open();
        Pipeline pipeline = runspace.CreatePipeline();
        pipeline.Commands.Add("Out-String");
        foreach (string str in scriptText)
        {
            Command cmd = new Command(str, false); ;
            pipeline.Commands.Add(cmd);
        }
        pipeline.InvokeAsync();

        while (!pipeline.Output.EndOfPipeline)
        {
            stringBuilder.AppendLine(pipeline.Output.ToString());
        }

        runspace.Close();
        return stringBuilder.ToString();
    }

1 个答案:

答案 0 :(得分:0)

目前还不清楚你想要实现的目标,但是:

  • 程序退出第一个错误,因此第二个命令不会被调用
  • 您的代码会抛出错误,因为找不到 { "_id": { "defect": "aaaa", "week: 1 }, "sumOfCost": 213213 } { "_id": { "defect": 'aaaa', "week": 2 }, "sumOfCost: 123213 } ... ,而且我认为也找不到Test1
  • 脚本或命令必须存在

示例:

Test2

更多请参阅Adding and invoking commands