如何运行嵌入批处理文件使用进程.从c#开始
本文关键字:进程 开始 批处理文件 何运行 运行 | 更新日期: 2023-09-27 18:01:40
我添加一个批处理文件。我们说"batch"。cmd"在我的WPF应用程序。我右键单击我的项目并添加现有项目,在项目中添加我的批处理文件。我选择了我的批处理文件,并将构建动作更改为嵌入式资源。在我构建它之后,我看到这个文件添加到project中。
现在我需要在我的代码中启动我的批处理文件,我尝试了Process.Start("batch.cmd")
,它不起作用,我喜欢:
Process p = new Process();
p.StartInfo.FileName = "batch.cmd";
p.Start();
它也不工作。我怎样才能让我的代码理解这个批处理存在于我的项目中,并在'bin中的某个地方。我不想硬编码,因为Path总是会改变。
您需要在运行时将文件从资源保存到磁盘,然后从该位置调用它(如果它期望从特定文件夹启动,可能需要调整"当前目录")
链接:
- 如何嵌入和访问资源
- 路径。GetTempFileName -获取保存文件的位置(完成后不要忘记删除)。
- ProcessStartInfo。WorkingDirectory
下面的未验证代码:
var tempFileName = Path.GetTempFileName();
Assembly.GetExecutingAssembly()
.GetManifestResourceStream("my.cmd")
.CopyTo(File.OpenWrite(tempFileName);
Process.Start(tempFileName);
File.Delete(tempFileName);
你是说这样吗?
Process p = new Process();
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "''batch.cmd";
p.Start();