1

我添加了一个批处理文件。让我们在我的 WPF 应用程序中说“batch.cmd”。我右键单击我的项目并添加现有项目,在项目中添加我的批处理文件。我选择了我的批处理文件并将构建操作更改为嵌入式资源。在我构建它之后,我看到这个文件添加到项目中。

现在我需要在我的代码中启动我的批处理文件,我试过Process.Start("batch.cmd")了,它不起作用,我确实喜欢:

Process p = new Process();
p.StartInfo.FileName = "batch.cmd";
p.Start();

它也不起作用。我怎样才能让我的代码理解这个批次存在于我的项目中以及 \bin 中的某个位置。我不想硬编码它,因为路径总是会改变。

先谢谢了。

4

2 回答 2

2

您需要在运行时将文件从资源保存到磁盘,然后从该位置调用它(如果它希望从特定文件夹开始,可能需要调整“当前目录”)。

链接:

以下未经验证的代码:

  var tempFileName = Path.GetTempFileName();

  Assembly.GetExecutingAssembly()
    .GetManifestResourceStream("my.cmd")
    .CopyTo(File.OpenWrite(tempFileName);

  Process.Start(tempFileName);
  File.Delete(tempFileName);
于 2013-02-28T16:54:49.113 回答
0

你的意思是这样吗?

Process p = new Process();
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "\\batch.cmd";
p.Start();
于 2013-02-28T16:54:27.553 回答