2012-09-13 49 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,“不起作用”不是一个问题的解释。在调试器中浏览代码并查看所有内容,确保您对值很满意,确保您没有吃异常,并在您的问题中发布此类调查的详细信息。 –