运行外部程序,以及C#中的几个参数

时间:2012-09-13 06:27:10

标签: c# external

我使用以下命令创建一个单独的EXE文件(Player.exe作为解释器):

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 个答案:

答案 0 :(得分:2)

您传递的文件路径中是否有空格?如果是这样,您可能想引用字符串:

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

答案 1 :(得分:0)

如果labelPath的类型为Label而不是+,则另一个选项将在其上调用ToString,结果字符串将类似于“... Label ...”。你可能需要类似的东西(如果路径有空格,可能需要结合FredrikMörk的答案):

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