2016-06-28 61 views
0

執行命令行我已經在C#中執行命令行的問題:如何在C#

Screenshot

我嘗試:

String [email protected]"C:\Windows\system32>ConsoleTest.exe --asMRZ C:\temp\TEST_CMD\image.jpg C:\temp\TEST_CMD\"; 

System.Diagnostics.Process.Start("cmd.exe", @"/C ' Mon_CMD'"); 

但我總是得到一個錯誤。

如何執行此確切命令?

+1

你不是真的連接字符串,它是錯誤的c#語法,嘗試:'Process.Start(「cmd.exe」,$「/ C' {Mon_CMD}'「);'或'Process.Start(」cmd.exe「,」/ C'「+ Mon_CMD +」'「);' –

+1

您不會啓動CMD從那裏執行命令, 「ConsoleTest.exe」直接使用所需的參數。除了你的字符串格式不正確 –

回答

1

提供ConsoleTest.exe是在C:\ Windows \ System32下(這似乎不是一個好主意,但這是另一個話題)

String Mon_CMD = @"C:\Windows\system32\ConsoleTest.exe"; 
String arguments = @"--asMRZ C:\temp\TEST_CMD\image.jpg C:\temp\TEST_CMD\"; 

System.Diagnostics.Process.Start(Mon_CMD, arguments); 

應該做的工作

以及由cFrozenDeath和建議Nyerguds,如果你想在另一個字符串中使用Mon_CMD,你有多種選擇,如:使用+運營商的StringBuilder建立一個新的字符串,或者如果你是C#6串插:

string arguments = $"/C ' {Mon_CMD}'"; 

(並且你不需要一個字面字符串)

+0

你還應該提到OP連接字符串的錯誤嘗試,這是代碼中的錯誤部分 –

+0

@cFrozenDeath你是指在Mon_CMD或參數中合併Path和exe名稱? –

+0

@ vc74事實上,他們將文本「Mon_CMD」放在一個帶引號的字符串中,而不是將其引用爲變量。 – Nyerguds