我正在编写一个应用程序,它一度启动win-acme,并需要将一些参数传递给它。我正在成功地打开powershell并启动win-acme,但它不会将参数传递给它。所以,我有个密码:
Process wacsProcess = Process.Start(new ProcessStartInfo
{
FileName = @"C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe",
Arguments = (@"cd C:\inetpub\letsencrypt ; .\wacs.exe ; N"),
RedirectStandardOutput = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden
});
File.WriteAllText(".\\OutPutAfterFirstLaunch.txt",
wacsProcess.StandardOutput.ReadToEnd());它打开命令行实用程序,但不给它最后的参数"N“。我想这是因为我将这个参数传递给powershell,但是它仍然在使用win-acme。看起来是这样的:

是否有一种方法可以使用C#将参数传递给命令行实用程序?
发布于 2022-06-21 20:37:01
这个应用程序就是这样设计的。对于新的证书,它应该是交互式的。请参阅包含所有允许的命令行参数的文档:https://www.win-acme.com/reference/cli。
发布于 2022-06-21 20:38:19
是否有特定的原因必须从powershell启动该进程?
如果您以与从powershell窗口读取输出的方式相同的方式直接启动进程的stdout (输出powershell显示的只是进程的stdout ),您应该能够读取它。
您还可以尝试使用可执行文件传递N参数,
Arguments = (@"cd C:\inetpub\letsencrypt ; .\wacs.exe N;"),https://stackoverflow.com/questions/72706774
复制相似问题