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



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

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

但是,该命令没有创建(即使获得了bat文件),而是启动了一个没有game.zip的空player.exe

我的以下代码不起作用:

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

有人能告诉我为什么我的代码没有按预期工作吗?

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

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

如果labelPath的类型为Label than+,则另一个选项将在其上调用ToString,结果字符串将类似于"…Label…"。您可能需要类似的内容(如果路径有空格,则可能需要与Fredrik Mörk的答案相结合):

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

最新更新