从C#运行bat脚本

时间:2010-10-23 16:27:41

标签: c# windows process batch-file

我正在尝试从c sharp程序中运行批处理脚本,我正在使用的代码如下所示:

 Process proc = new Process();
 proc.StartInfo.FileName = "G:\\Media\\Downloads\\print.bat";
 proc.Start();

脚本很简单(出于测试目的)并包含一行:

echo hello > output.txt

当我从Windows资源管理器运行脚本时,它可以工作,但是从C#代码运行时却不行。

有什么想法吗?

另外,如何在进程完成后为进程提供回调方法?

由于

1 个答案:

答案 0 :(得分:7)

对我来说很好。我猜测当你以编程方式执行批处理文件时,你希望输出文件在Downloads文件夹中创建,当它实际上是在应用程序的中创建时文件夹

要么完全限定批处理文件中的输出文件路径,要么更改已启动进程的工作目录,如下所示:

proc.StartInfo.WorkingDirectory = @"G:\Media\Downloads\";

关于在流程完成后收到通知的问题,您可以使用Process方法或{{1}}对象上的WaitForExit事件。