PHP код:
static void ReturnCode_Job(Args _args)
{
COM wsh = new COM('WScript.Shell');
int returnCode1 = -1;
int returnCode2 = -1;
int errorCode1 = -1;
int errorCode2 = -1;
;
returnCode1 = wsh.Run('winrar.exe e -y C:\\1.zip C:\\1\\', 1, true);
errorCode1 = WinAPI::getLastError();
returnCode2 = wsh.Run('winrar.exe e -y C:\\2.zip C:\\2\\', 1, true);
errorCode2 = WinAPI::getLastError();
info(strFmt('1.zip: ReturnCode = %1, ErrorCode = %2', returnCode1, errorCode1));
info(strFmt('2.zip: ReturnCode = %1, ErrorCode = %2', returnCode2, errorCode2));
wsh.finalize();
return;
}
Результаты:
1.zip: ReturnCode = 0, ErrorCode = 0
2.zip: ReturnCode = 6, ErrorCode = 0
1.zip - нормальный архив
2.zip - битый архив (нераспаковывается)
P.S. Значения ErrorCode приведены для сравнения.