2015-10-07 104 views
0

我的代碼啓動了一個包含3個由空格分隔的參數的進程。完成處理後退出控制檯應用程序

ProcessStartInfo info = new ProcessStartInfo(); 
info.FileName = exeLauncher; 
info.Arguments = path + " " + exeName + " " + restartNeeded; 
Process process = new Process(); 
Process.Start(info); 

我正在解析我啓動並執行一些處理的過程的參數。

static void Main(string[] args) 
{ 

    Console.WriteLine(args[0]); 
    Console.WriteLine(args[1]); 
    Console.WriteLine(args[2]); 

    //some more processing here 

    Console.ReadLine(); 
} 

處理後,我想在控制檯窗口關閉本身。我嘗試過使用這樣的/c參數,但它只是將它解釋爲一個純字符串。

info.Arguments = "/c" + path + " " + exeName + " " + restartNeeded; 

我也嘗試將參數括在""雙引號中,但它不起作用。

info.Arguments = string.Format("/c \"{0} {1} {2}\"", path, exeName, restartNeeded); 
+4

你爲什麼不刪除'控制檯。 ReadLine();'這將關閉控制檯 –

回答

2

,您可以嘗試這樣

static void Main(string[] args) 
{ 

    Console.WriteLine(args[0]); 
    Console.WriteLine(args[1]); 
    Console.WriteLine(args[2]); 

    //some more processing here 

} 

Console.ReadLine();會讓你等待,直到你按下回車鍵的窗口不會被關閉。因此您可以刪除此行來完成任務。

1

沒有試圖刪除Console.ReadLine();並返回INT知道它是否成功執行,如:

static int Main(string[] args) 
{ 

    Console.WriteLine(args[0]); 
    Console.WriteLine(args[1]); 
    Console.WriteLine(args[2]); 

    //some more processing here 

    return 0; // if success or > 1 for errors 
} 
0

這應該爲你工作:

Environment.Exit(0); 
相關問題