Я работал над этим проектом и постараюсь объяснить, что я делаю.
Я буду запускать файл bat из собственного DOS (флэш-накопитель USB DOS Boot), который запускает программу (SHOWDATA.EXE) и выводит некоторые данные из этой программы в текстовый файл. Затем он запустит мое приложение (скомпилированное для DOS16Bit с Open-Watcom), которое изменяет второй исполняемый файл (EDITED.EXE), используя информацию, которая была только что выведена ранее. Затем он должен запустить недавно измененный exe (EDITED.EXE). Мои среды для тестирования были в Virtual Box и с загрузочным диском USB DOS. Пока моя система и программа работают так, как задумано, до тех пор, пока на строке, где я отображаю «Завершено» и хочу запустить только что измененный exe-файл, я не получу
Общий сбой чтения диска C
Прервать, повторить, игнорировать, потерпеть неудачу?
Виртуальная коробка также отображает ошибку записи на диск A (дисковод гибких дисков A)
Если я перезапущу систему, я смогу запустить вновь измененный файл без проблем и получить желаемые результаты.
Есть ли проблема с способом, которым я открываю или редактирую или закрываю свой файл, который вызвал бы такое поведение?
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE * pFile;
char data1[11];
char data2[33];
pFile = fopen ("testfile.exe","r+b");
printf ("PROGAM TITLE TEXT\n");
printf ("2013\n");
printf ("\n");
printf("Enter 10 Digit String from 1st filed above:\n"); //From previous program output
scanf ("%10s",data1); //only read 10 Chars
printf("Enter 32 Digits from 2nd field above:\n"); //From previous program output
scanf ("%32s",uuid); //only read 32 Chars
fseek (pFile,24523,SEEK_SET);//file offset location to begin write
fputs (sn,pFile); //Write our data!
fseek (pFile,24582,SEEK_SET);//file offset location to begin write
fputs (uuid,pFile); //Write our data!
fseek (pFile,24889,SEEK_SET);//file offset location to begin write
fputs (uuid,pFile); //Write our data!
fclose(pFile); //Close our file
printf ("Finished\n");
return(0);
}
Мой файл Bat выглядит следующим образом: я передаю переменную из текстового файла D.txt в SHOWDATA.EXE и записываю вывод в info.txt. Затем я анализирую info.txt с FOR / F для отображения только полезной информации, которая будет использоваться для редактирования второго exe-файла (EDITED.EXE). Затем он запустит отредактированный exe-файл.
TYPE D.txt | SHOWDATA.EXE > Info.txt
PAUSE
MYPROGRAM.EXE
PAUSE
EDITED.EXE
Я в недоумении.
Задача ещё не решена.
Других решений пока нет …