我添加了一个批处理文件。让我们在我的WPF应用程序中说“batch.cmd”。我右键单击我的项目并添加现有项目,在项目中添加我的批处理文件。我选择了我的批处理文件并将Build Action更改为Embedded Resource。在我构建之后,我在项目中看到了这个文件。
现在我需要在我的代码中启动我的批处理文件,我尝试Process.Start("batch.cmd")
,它不起作用,我确实喜欢:
Process p = new Process();
p.StartInfo.FileName = "batch.cmd";
p.Start();
它也不起作用。我怎样才能让我的代码理解这个批处理存在于我的项目中以及\ bin中的某个位置。我不想对它进行硬编码,因为Path总是会改变。
先谢谢。
答案 0 :(得分:2)
您需要在运行时将文件从资源保存到磁盘,而不是从该位置调用它(如果需要从特定文件夹开始,可能需要调整“当前目录”)。
链接:
以下未经验证的代码:
var tempFileName = Path.GetTempFileName();
Assembly.GetExecutingAssembly()
.GetManifestResourceStream("my.cmd")
.CopyTo(File.OpenWrite(tempFileName);
Process.Start(tempFileName);
File.Delete(tempFileName);
答案 1 :(得分:0)
Process p = new Process();
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "\\batch.cmd";
p.Start();