簡體   English   中英

從C#運行時命令行進程不起作用

[英]Command line process not working when run from C#

我正在嘗試上傳文件,然后使用服務器端進程進行轉換。

這是在ASP.NET開發服務器localhost:8638上運行的Visual Studio Web ASP.NET Web應用程序的一部分

string fn = System.IO.Path.GetFileNameWithoutExtension(File1.PostedFile.FileName);
Process p = new Process();
                    p.StartInfo.WorkingDirectory = Server.MapPath("/Data");
                    p.StartInfo.FileName = "cmd.exe";
                    p.StartInfo.Arguments = "soffice --headless --invisible -convert-to pdf "+fn+".ppt";
                    p.StartInfo.UseShellExecute = false;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.Start();
                    p.WaitForExit();

我可以手動打開Data目錄中的cmd.exe ,然后輸入這個命令,替換文件名,它就可以了。 但是,運行此代碼不會產生任何結果

我錯過了什么,或做錯了什么?

你不能只把所有東西都傳遞給cmd。 您需要使用/ C參數,該參數將使用這些命令打開命令提示符,並在完成運行該命令時終止它。 嘗試將您的參數更改為

StartInfo.Arguments = "/C soffice --headless --invisible -convert-to pdf "+fn+".ppt";

另一種解決方案是簡單地運行流程(如SLaks的評論中所述)。 p.StartInfo.FileName更改為相應的可執行文件,編輯您的參數,您應該很高興。 這應該是首選方法,因為它可以更直接地執行您想要的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM