我有批处理文件: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服务应用程序执行批处理文件?
提前致谢..
答案 0 :(得分:0)
您的参数已关闭,您将“sample”作为sample.bat的第一个参数。
您的服务可能未在您的用户帐户下运行。也许它甚至无法访问您的文件。
您需要使用cmd.exe启动批处理文件。你可以找到一个非常好的解释here。
你想做什么?从Windows服务运行批处理文件没有多大意义,您将无法看到结果。也许你应该首先尝试一个控制台应用程序来调试你的问题。
您可能还想在下次发布实际错误,因为上述所有内容只是猜测,我们需要的信息不仅仅是“不起作用”。