从C#运行bat脚本

我试图从ac sharp程序运行批处理脚本我使用的代码如下所示:

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

该脚本很简单(用于testing目的)并包含一行:

 echo hello > output.txt 

当我从Windows资源pipe理器运行该脚本它的作品,但不从C#代码运行时。

有什么想法吗?

另外我怎样才能给进程一个callback方法,当它完成?

谢谢

Solutions Collecting From Web of "从C#运行bat脚本"

这对我来说可以。 我猜测发生了什么事情是,当你以编程方式执行批处理文件时,你希望在Downloads文件夹中创建输出文件,当它实际上是在应用程序的文件夹中创建

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

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

至于您在处理完成时接收通知的问题,则可以使用Process对象上的WaitForExit方法或Exited事件。