我正在尝试从c sharp程序中运行批处理脚本,我正在使用的代码如下所示:
Process proc = new Process();
proc.StartInfo.FileName = "G:\\Media\\Downloads\\print.bat";
proc.Start();
脚本很简单(出于测试目的)并包含一行:
echo hello > output.txt
当我从Windows资源管理器运行脚本时,它可以工作,但是从C#代码运行时却不行。
有什么想法吗?
另外,如何在进程完成后为进程提供回调方法?
由于
答案 0 :(得分:7)
对我来说很好。我猜测当你以编程方式执行批处理文件时,你希望输出文件在Downloads
文件夹中创建,当它实际上是在应用程序的中创建时文件夹
要么完全限定批处理文件中的输出文件路径,要么更改已启动进程的工作目录,如下所示:
proc.StartInfo.WorkingDirectory = @"G:\Media\Downloads\";
关于在流程完成后收到通知的问题,您可以使用Process
方法或{{1}}对象上的WaitForExit
事件。