我正在开发视窗服务,这将通过批处理file.Later生成csv文件,我将读取该文件。下面是批处理文件命令psexec \wksp000ae2c8 -h -w D:\UPSData\OCCG\OPMI\Cache\OPSTimingExtractor\ "C:\Program Files (x86)\UPSAPPS\OCCG\OPMI\Tools\dirt.bat“> 051120072244.091.csv
当我在控制台中单独执行时,我能够生成csv文件。Windows服务生成批处理文件。
但是当我将其作为windows服务执行时,Process.WaitForExit没有返回。
我分别双击它执行的批处理文件并生成批处理文件。下面是代码
Process procstart = new Process();
ProcessStartInfo psi = new ProcessStartInfo
{
CreateNoWindow = true,
UseShellExecute = false,
FileName = "cmd.exe",
Arguments = @"/C "+ BatfileName,
WindowStyle = ProcessWindowStyle.Hidden,
RedirectStandardOutput = true,
RedirectStandardError = true,
ErrorDialog = false
};
procstart.StartInfo = psi;
procstart.Start();
procstart.WaitForExit();当我添加procstart.Kill或关闭时,它不起作用。当我转到位置并试图打开该文件时,它显示file在另一个进程中。
当我尝试删除该文件时,它会提示我“该操作无法完成,因为该文件在cmd.exe中处于打开状态
https://stackoverflow.com/questions/64698169
复制相似问题