Batch Datei aus Free Turbo Pascal starten

Hallo Community,

ich versuche mir gerade ein kleines Menü für mein USB Stick zu basteln. Je nachdem was ich auswähle soll dann über eine batch Datei gestartet werden und mein eigentliches Programm (Menue) geschlossen.
___

program menue;
uses crt;
var hauptabfrage : char;
sicherheitsfrage : char;

procedure bios_flashen;
begin
clrscr;
writeln (‚BIOS FLASHEN‘);
writeln (‚Sind Sie sicher ? (j/n))‘);
sicherheitsfrage :=readkey;
if (sicherheitsfrage) ='j’then
begin
writeln (‚BIOS flashen wird gestartet‘);
readln;
end;
end;

procedure partitionieren;
begin
clrscr;
writeln (‚PARTITIONIEREN‘);
writeln (‚Sind Sie sicher ? (j/n))‘);
sicherheitsfrage :=readkey;
if (sicherheitsfrage) =‚j‘ then
begin
writeln (‚Parti wird gestartet‘);
readln;
end;
readln;
end;
begin
repeat
clrscr;
writeln (’**** Hauptmenue ****’);
writeln (’’);
writeln (’[1] BIOS flashen’);
writeln (’[2] HDD Partitionieren’);
writeln (’[E] Exit’);
hauptabfrage := readkey;
case hauptabfrage of
‚1‘ : bios_flashen;
‚2‘ : partitionieren;
end;
until hauptabfrage =‚e‘;

end.

____

Wie kann ich jetzt eine batch Datei aus Free Turbo Pascal starten lassen?

MFG Fisy02

Hallo,

ich habe schon Jahre kein Turbo Pascal mehr programmiert. Aber ich glaube, ein Befehl, der dir helfen könnte ist „Exec“. Er funktioniert glaube ich so:


uses Dos;

SwapVectors;
Exec(path, cmdline);
SwapVectors;

Der SwapVectors-Befehl ist nur bedingt notwendig, aber mach ihn sicherheitshalber mal dazu. path und cmdline sind zwei Strings. In Path kommt dein Programm rein (z.B. ‚c:\test\myprogram.exe‘) und in cmdline die Programmparameter (z.B. ‚\f \t now‘).

Wenn das in dieser Form nicht compilierbar ist oder nicht funktioniert, dann such mal nach dem Befehl Exec. Das dürfte das sein, was du suchst.

Liebe Grüße
Sebastian

Muss ich leider passen. Hab selber
nur zu QBASIC Zeiten mal DOS Kommandozeilenparameter
im Programm aufgerufen. Bei QBASIC ging das über den „RUN“ Befehl meine ich…

Hat alles funktioniert. Danke noch mal.
Nun mein nächstes Problem:
Ich will in meinen Proceduren immer bestimmte „BATCH/.bat“ Scripte öffnen. Unter Windows XP funktioniert der Aufruf. Schiebe ich dann alles auf mein Boot fähigen Stick mit DOS. Geht mein Programm, aber wenn ich dann eine Auswahl tätige öffnet er mir nicht die .bat Datei. In der BATCH Datei stehen Parameter, die dann eine andere EXE aufrufen. Ist der Aufruf unter DOS anders oder muss ich erst irgendwie meine MENUE.exe beenden um die nächste EXE zu starten? Wenn ja wie mache ich das?

procedure partitionieren;
begin
clrscr;
writeln (‚PARTITIONIEREN‘);
writeln (‚Sind Sie sicher ? (j/n))‘);
sicherheitsfrage :=readkey;
if (sicherheitsfrage) =‚j‘ then
begin
swapVectors;
exec (‚c:\pascal.bat‘,’/f/t now’);
swapVectors;
end;
readln;
end;

MFG Fisy02

Danke für die Antwort. Bei Turbo ist es aber anders. Ich hab die Lösung gefunden. :smile:

MFG Fisy02

Muss ich leider passen. Hab selber
nur zu QBASIC Zeiten mal DOS Kommandozeilenparameter
im Programm aufgerufen. Bei QBASIC ging das über den „RUN“
Befehl meine ich…

Hi.

Wenn mich nicht alles täuscht, wurde dir die Frage im Forum schon beantwortet…

Sebastian.