home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* EXECUTE.PAS *)
- (* Programme in anderen Verzeichnissen ausführen *)
- (* (C) 1989 Christian Ramsauer & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM Programme_Ausfuehren;
- {$M 16384, 0, 0}
-
- USES Dos, Crt;
-
- VAR
- Name, Parameter, AlterPfad : STRING;
- Laufwerk : STRING[2];
-
- PROCEDURE Laufwerk_Name;
- VAR
- i : INTEGER;
- BEGIN
- Laufwerk := AlterPfad[1] + AlterPfad[2];
- Name := ParamStr(1);
- FOR i := 1 TO Length(Name) DO
- Name[i] := UpCase(Name[i]);
- IF (Name[2]= ':') AND (Name[1] IN ['A'..'Z']) THEN BEGIN
- Laufwerk := Name[1] + Name[2];
- Delete(Name, 1, 2);
- END;
- END;
-
- PROCEDURE ParameterAuswerten;
- VAR
- i : INTEGER;
- BEGIN
- Parameter := '';
- FOR i := 2 TO ParamCount DO
- Parameter := Parameter + ParamStr(i) + ' ';
- END;
-
- PROCEDURE Execute(Pfad, Name : STRING);
- VAR
- ch : Char;
- BEGIN
- WriteLn(Pfad + Name, ' ', Parameter);
- WriteLn('Soll diese Datei ausgeführt werden? (J/N)');
- ch := UpCase(ReadKey);
- IF ch = 'J' THEN BEGIN
- IF Length(Pfad) > 3 THEN
- Delete(Pfad, Length(Pfad), 1);
- ChDir(Pfad);
- Exec(Name, Parameter);
- ChDir(AlterPfad);
- Halt(0);
- END;
- END;
-
- PROCEDURE Suchen(Pfad : STRING);
- VAR
- s : SearchRec;
- BEGIN
- FindFirst(Pfad + '*.*', $37, s);
- WHILE DosError = 0 DO BEGIN
- IF ((s.attr = 16) OR (s.attr = 18)) AND
- (s.name <> '.') AND (s.name <> '..') THEN
- Suchen(Pfad + s.name + '\')
- ELSE
- IF (s.name = Name + '.COM') OR
- (s.name = Name + '.EXE') THEN
- Execute(Pfad, s.name);
- FindNext(s);
- END;
- END;
-
- BEGIN
- GetDir(0, AlterPfad);
- Laufwerk_Name;
- ParameterAuswerten;
- Suchen(laufwerk + '\');
- WriteLn('Suchvorgang beendet!', #7);
- END.
- (* ------------------------------------------------------ *)
- (* Ende von EXECUTE.PAS *)