C#CMD-提示时的交互
由于对生成自签名证书的不断要求,我开始开发一个简单的控制台程序,它可以加快这个过程。它需要一些参数,启动一个CMD进程,并在生成过程中使用openssl 其中一个openssl命令接受有关可分辨名称的一些输入,另一个命令接受有关CA密码的输入。对于这些提示,我在StandardInput stream上写了一行,它还可以发送一个回车键笔划。对于第一种情况,它似乎起作用,但第二个提示符挂起并且从未收到它。如何解决这个问题 命令:C#CMD-提示时的交互,c#,cmd,openssl,C#,Cmd,Openssl,由于对生成自签名证书的不断要求,我开始开发一个简单的控制台程序,它可以加快这个过程。它需要一些参数,启动一个CMD进程,并在生成过程中使用openssl 其中一个openssl命令接受有关可分辨名称的一些输入,另一个命令接受有关CA密码的输入。对于这些提示,我在StandardInput stream上写了一行,它还可以发送一个回车键笔划。对于第一种情况,它似乎起作用,但第二个提示符挂起并且从未收到它。如何解决这个问题 命令: openssl x509 -req -in {Domain}.cs
openssl x509 -req -in {Domain}.csr -CA {PathCA} -CAkey {PathKeyCA} -CAcreateserial -out {Domain}.crt -days 825 -sha256 -extfile {Domain}.ext
代码:
发现异常了吗?没有,它只是写了一行而没有提交
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
using (StreamWriter sw = cmd.StandardInput) {
if (sw.BaseStream.CanWrite) {
foreach (Models.Command command in commands) {
try {
if (!command.Prompt) {
// Command execution
sw.WriteLine(command.Descripcion);
} else {
// Input prompt
cmd.StandardInput.WriteLine(command.Descripcion);
cmd.StandardInput.Flush();
}
} catch (Exception ex2) {
}
}
}
}
cmd.Close();