我試圖從C#程序執行.cmd進程。當我運行在命令行的過程中,即。在C#執行CMD莫名其妙地失敗
C:\Directory\Process.cmd -x 1000 -y 1000 C:\Input\input.txt
我得到相應的結果(在這種情況下,這意味着過程中文件寫入到:
C:\Output\output.txt
然而,當我嘗試。從運行一個簡單的C#程序這一過程中,不創建輸出文件下面是一些我嘗試:
嘗試1)
try
{
string processName = @"C:\Directory\Process.cmd";
string argString = @" -x 1000 -y 1000 C:\Input\input.txt"; //The extra space in front of the '-x' is here on purpose
Process prs = new Process();
prs.StartInfo.UseShellExecute = false;
prs.StartInfo.RedirectStandardOutput = false;
prs.StartInfo.FileName = processName;
prs.StartInfo.Arguments = argString;
prs.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
prs.Start()
}
catch (Exception e)
{
Console.Writeline(e.Message);
}
嘗試2)
try
{
System.Diagnostics.Process.Start(@"C:\\Directory\\Process.cmd", " -x 1000 -y 1000 C:\\Input\\input.txt";
}
catch (Exception e)
{
Console.Writeline(e.message);
}
現在,在這兩種情況下,沒有異常拋出,並Process.cmd被訪問(它打印在shell狀態更新),但這個過程不會產生任何輸出文件。我嘗試調用Process.cmd的方式有什麼問題,當它直接從命令行運行時它可以正常工作,但是當我嘗試從我的C#程序調用它時不能正常工作?
你可以發佈process.cmd內容嗎? –
不幸的是我不能(我沒有訪問它)。我知道process.cmd調用一個處理數據併產生輸出的Java應用程序。 – gfppaste
該進程是否需要管理員權限才能執行並寫入輸出?你有沒有檢查過C#程序是否以正確的權限運行? – Ani