我有一個第三方可執行命令被綁定到我的winform應用程序中。該命令放置在執行應用程序的目錄中名爲「tools」的目錄中。例如,如果我的winform mytestapp.exe被放置在D:\ apps \ mytestapp目錄中,則第三方命令的路徑是D:\ apps \ mytestapp \ tools \ mycommand.exe。我使用Application.StartupPath來識別mytestapp.exe的位置,以便它可以從任何位置運行。在winform中執行命令提示符下的自定義命令C#
我正在通過啓動一個進程 - System.Diagnostics.Process.Start並使用命令提示執行相同的命令來執行此命令。還有其他參數需要傳遞來運行該命令。
我面臨的問題是,如果路徑到我的應用程序和命令不具有任何空格,它工作正常
例如,如果 我的應用程序和命令放在像下面,它的工作原理 d:\ APPS \ mytestapp \ mytestapp.exe d:\ APPS \ mytestapp \工具\ mycommand.exe 「參數1」 「參數2」 - 這部作品
但是如果我必須在路徑中的空格,它失敗
C:\ Documents and settings \ mytestapp \ tools \ mycommand.exe「param eter1「」parameter2「 - does not work C:\ Documents and settings \ mytestapp \ tools \ mycommand.exe」parameter1 parameter2「 - does not work 」C:\ Documents and Settings \ mytestapp \ tools \ mycommand.exe「」parameter1 parameter2 「 - does not work 」C:\ Documents and Settings \ mytestapp \ tools \ mycommand.exe parameter1 parameter2「 - does not work
我試着用雙引號執行命令,如上所示,它不起作用。 那麼,我該如何執行我的自定義命令。任何輸入或解決此問題? 在此先感謝。
這是啓動過程的
try
{
System.Diagnostics.ProcessStartInfo procStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
}
catch (Exception objException)
{
// Log the exception
}
什麼是例外?你可以分享你的代碼周圍的Process.Start – rene
顯示你的ProcessStartInfo設置代碼,你應該得到快速解答:) –
@retailcoder,我不認爲有在的ProcessStartInfo一個錯誤,因爲我得到所需的輸出時,有沒有路徑中的空白區域。 –