[英]How do I pass DTEXEC utility command line arguments to process.start using C# syntax?
[英]How to pass arguments to command line utility using c#?
我正在編寫一個應用程序,它有時會啟動 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# 將參數傳遞給命令行實用程序?
這就是這個應用程序的設計方式。 它旨在對新證書進行交互。 請參閱包含所有允許的命令行參數的文檔: https ://www.win-acme.com/reference/cli
是否有特定原因必須從 powershell 啟動該進程?
如果您直接啟動它,就像您從 Powershell 窗口讀取輸出一樣,您應該能夠讀取該進程的標准輸出(無論如何,輸出的 powershell 顯示只是該進程的標准輸出。)
您也可以嘗試將 N 參數與可執行文件一起傳遞,
Arguments = (@"cd C:\inetpub\letsencrypt ; .\wacs.exe N;"),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.