我已经搜索了很多在 c# 中使用进程运行批处理文件的方法,但它们都没有帮助我。
批处理文件的操作是:使用 psexec,它连接到远程控制并在那里停止一些服务。之后它会删除很多文件,然后复制新文件,再次连接,使用 psexec 连接到计算机并启动服务。
当我自己执行批处理时,所有这些操作都需要一段时间。但是当我使用 process 执行批处理文件时,它会在 5 秒内完成并显示它应该的所有输出。我发现它什么也没做。只需显示成功完成后应该执行的输出即可。
我正在使用此代码执行批处理
batch = new Process();
batch.StartInfo.FileName = batchPath;
batch.StartInfo.UseShellExecute = false;
batch.StartInfo.RedirectStandardOutput = true;
batch.StartInfo.CreateNoWindow = true;
batch.OutputDataReceived += new DataReceivedEventHandler(IncomingOutput);
batch.Start();
batch.BeginOutputReadLine();
batch.WaitForExit(TimeWait * 1000);
batch.CancelOutputRead();
我究竟做错了什么?