无法从Windows服务应用程序运行批处理文件

时间:2013-04-04 06:14:56

标签: c# .net service batch-file windows-services

我有批处理文件:sample.bat,代码如下:

@ECHO OFF

SET /a INT1=%1
SET /a INT2=%2

SET /a ANSWER=INT1*INT2

ECHO %ANSWER%

PAUSE

还创建了另一个批处理文件:cmdSample.bat,其代码如下:

样本2 4

因此,如果我运行cmdSample.bat文件,它会给我正确的结果。

之后我创建了1个Windows服务应用程序,其中我试图调用该批处理文件并传递命令,如下所示:

private void DoWork()
    {
        try
        {
            string fname = @"C:\Users\of4\Desktop\sample.bat";
            string cmd = "sample 2 4";
            RunSampleBatch(fname, cmd);
        }
    }

    private void RunSampleBatch(string fname, string cmd)
    {
        Process p = new Process();
        p.StartInfo.FileName = fname;
        p.StartInfo.Arguments = cmd;
        p.Start();
    }

任何人都可以帮助我,为什么我无法通过Windows服务应用程序执行批处理文件?

提前致谢..

1 个答案:

答案 0 :(得分:0)

您的参数已关闭,您将“sample”作为sample.bat的第一个参数。

您的服务可能未在您的用户帐户下运行。也许它甚至无法访问您的文件。

您需要使用cmd.exe启动批处理文件。你可以找到一个非常好的解释here

你想做什么?从Windows服务运行批处理文件没有多大意义,您将无法看到结果。也许你应该首先尝试一个控制台应用程序来调试你的问题。

您可能还想在下次发布实际错误,因为上述所有内容只是猜测,我们需要的信息不仅仅是“不起作用”。