gpt4 book ai didi

从 Windows 服务调用批处理文件

转载 作者:行者123 更新时间:2023-11-30 18:06:45 25 4
gpt4 key购买 nike

我有一个服务需要在将新文件复制到目录时调用批处理。我尝试使用 CreateProcess、ShellExecute、ShellExecuteEx 甚至 system。我尝试直接调用批处理,然后调用 cmd.exe 并传递 /c batchfile 作为参数...什么也没有。我将服务设置为以管理员身份运行。我和其他用户一起尝试过。没什么。

这是 Windows 2008 服务器。

有什么想法吗?谢谢。

最佳答案

CreateProcess ,如下面的(非常简化的)示例所示,是从服务执行批处理文件的有效方法。

STARTUPINFO si = { 0 };
PROCESS_INFORMATION pi = { 0 };
si.cb = sizeof(si);

if( !CreateProcessA( NULL,
"C:\\test.bat",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi
) )
{
char msg[100];
sprintf( msg, "CreateProcess() failed: %d", GetLastError() );
OutputDebugStringA( msg );
}

日志记录是关键。如果批处理文件没有被执行,CreateProcess() 会告诉你原因。

您提到批处理文件将在“将新文件复制到目录时”执行。您是否确认检测代码工作正常?尝试执行批处理文件的代码是否确实达到了?

更多背景信息肯定会有所帮助。请发布批处理文件和服务代码的相关部分。

关于从 Windows 服务调用批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5327222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com