2012-09-13 60 views
0

我用下面的命令應該創建一個單獨的EXE文件(Player.exe當翻譯):運行外部程序,而在C#幾個參數

copy/b player.exe + game.zip game.ehe 

但是,該命令沒有創建(即使bat文件被獲取),並啓動一個空的player.exe而沒有game.zip

我下面的代碼無法正常工作:

private void button2_Click(object sender, EventArgs e) 
{ 
    saveDialog.Filter = "exe | *.exe"; 
    if (saveDialog.ShowDialog() == DialogResult.OK) ; 
    { 
     ProcessStartInfo info = new ProcessStartInfo(); 
     info.FileName = @"engine\windows\player.exe"; 
     info.Arguments = "/b copy " + labelPath + saveDialog.FileName; 
     info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
     using (Process process = Process.Start(info)) 
     { 
      process.WaitForExit(); 
     } 
    } 
} 

有人能告訴我爲什麼預期我的代碼不能正常工作?

回答

2

您傳遞的文件路徑中是否有空格?如果是的話,你可能會想引用字符串:

info.Arguments = "/b copy \"" + labelPath + saveDialog.FileName + "\""; 
0

另一種選擇,如果labelPath的類型標籤比+將調用它ToString和所得到的字符串將類似「......標籤......」 。你可能需要類似的東西(可能需要結合弗雷德裏克莫克的答案,如果路徑有空格):

info.Arguments = "/b copy labelPath.Text + saveDialog.FileName; 
+0

試過兩種方法,它不起作用。點擊保存在對話框中,所有... – user1667616

+0

@ user1667616,「不起作用」不是一個問題的解釋。在調試器中瀏覽代碼並查看所有內容,確保您對值很滿意,確保您沒有吃異常,並在您的問題中發佈此類調查的詳細信息。 –