0

我的批处理文件要求输入 y/n。我使用 CreateProcess() 方法运行该批处理文件。如果我使用 /y 作为命令行运行我的批处理文件,它不会要求输入。例如

run.bat /y

我想使用带有命令行/y 的 CreateProcess() 运行我的批处理文件,例如,我不知道如何使用 CreateProcess() 来执行此操作,并且我不想修改我的批处理文件。

::CreateProcess(L"run.bat",NULL,NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&startInfo,&procInfo ) ,我也试试这个

::CreateProcess(L"run.bat",L"/y",NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&startInfo,&procInfo )

但是,它不起作用。如果有人知道如何做到这一点,请告诉我。

::CreateProcess(L"run.bat",L"/y",NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&startInfo,&procInfo ) 这工作正常。这是我的错误,我改变了 if 部分,而我的流程进入了 else 部分。我总是改变我的if部分。感谢您的快速回复。

4

1 回答 1

0

试试这个

::CreateProcess(L"cmd.exe", L"/c run.bat /y", NULL, NULL, TRUE, CREATE_NEW_CONSOLE,
     NULL, NULL, &startInfo, &procInfo )

正如MSDN 上所说

要运行批处理文件,您必须启动命令解释器;将lpApplicationName设置为 cmd.exe 并将lpCommandLine设置为以下参数:/c 加上批处理文件的名称。

于 2013-06-08T07:07:09.910 回答