0

我有批处理文件: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 服务应用程序执行批处理文件?

提前致谢..

4

1 回答 1

0

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

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

您需要使用 cmd.exe 启动批处理文件。你可以在这里找到一个很好的解释。

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

下次您可能还想发布一个实际错误,因为以上所有内容都只是猜测,我们需要更多信息,而不仅仅是“不起作用”。

于 2013-04-04T06:18:44.757 回答