我需要从C++中管理一个批量档案,该档案可执行“exe”申请,而“exe”是一个称为“倾销”的免费方案,该节目将监测ed到文字档案中。 只要批量档案不使用开端指挥,我就使用制造装置。
"DumpEDID.exe" > "edid.txt" // this works
start /wait /d "DumpEDID.exe" > "edid.txt" // this doesn t
然而,我想利用“wait”指挥系统,这是一个问题。 这是否只是申请本身的问题? 我的作战档案管理守则如下:
std::ofstream fs;
fs.open(DUMP_EDID_BATCH_FILE_PATH);
fs << """ << DUMP_EDID_EXE_PATH << "" > "" << DUMP_EDID_TXT_FILE_PATH << """;
fs.close();
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
std::string str = (std::string)"/c " + """ + DUMP_EDID_BATCH_FILE_PATH + """;
char * cmdLine = new char[str.size() + 1];
strncpy(cmdLine,str.c_str(), str.size());
cmdLine[str.size()] = ;
if( !CreateProcessA( "c:\Windows\system32\cmd.exe",
cmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) )
{
delete[] cmdLine;
DWORD errCode = GetLastError();
g_log.Info(_T("CreateProcess failed - error code %d"), errCode);
return errCode;
}
delete[] cmdLine;
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
感谢。
EDIT——我刚刚尝试直接从指挥线上管理批量档案,我注意到一些奇怪之处,批量档案的内容是
开始/放弃/d“D:......dumpedid”和“D:...edid.txt”
但是,当我掌握批量档案时显示的指挥是
开始/wait /d “D:......dumpedid” 1>”D:...edid.txt”
第1号通知;第1号之前的编号和额外空间