首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用c#将参数传递给命令行实用程序?

如何使用c#将参数传递给命令行实用程序?
EN

Stack Overflow用户
提问于 2022-06-21 20:29:16
回答 2查看 109关注 0票数 1

我正在编写一个应用程序,它一度启动win-acme,并需要将一些参数传递给它。我正在成功地打开powershell并启动win-acme,但它不会将参数传递给它。所以,我有个密码:

代码语言:javascript
复制
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#将参数传递给命令行实用程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-21 20:37:01

这个应用程序就是这样设计的。对于新的证书,它应该是交互式的。请参阅包含所有允许的命令行参数的文档:https://www.win-acme.com/reference/cli

票数 0
EN

Stack Overflow用户

发布于 2022-06-21 20:38:19

是否有特定的原因必须从powershell启动该进程?

如果您以与从powershell窗口读取输出的方式相同的方式直接启动进程的stdout (输出powershell显示的只是进程的stdout ),您应该能够读取它。

您还可以尝试使用可执行文件传递N参数,

代码语言:javascript
复制
Arguments = (@"cd C:\inetpub\letsencrypt ; .\wacs.exe N;"),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72706774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档