home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 09 / tricks / execute.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-06-09  |  2.1 KB  |  80 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     EXECUTE.PAS                        *)
  3. (*      Programme in anderen Verzeichnissen ausführen     *)
  4. (*        (C) 1989 Christian Ramsauer  &  TOOLBOX         *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM Programme_Ausfuehren;
  7. {$M 16384, 0, 0}
  8.  
  9. USES Dos, Crt;
  10.  
  11. VAR
  12.   Name, Parameter, AlterPfad : STRING;
  13.   Laufwerk                   : STRING[2];
  14.  
  15.   PROCEDURE Laufwerk_Name;
  16.   VAR
  17.     i : INTEGER;
  18.   BEGIN
  19.     Laufwerk := AlterPfad[1] + AlterPfad[2];
  20.     Name := ParamStr(1);
  21.     FOR i := 1 TO Length(Name) DO
  22.       Name[i] := UpCase(Name[i]);
  23.     IF (Name[2]= ':') AND (Name[1] IN ['A'..'Z']) THEN BEGIN
  24.       Laufwerk := Name[1] + Name[2];
  25.       Delete(Name, 1, 2);
  26.     END;
  27.   END;
  28.  
  29.   PROCEDURE ParameterAuswerten;
  30.   VAR
  31.     i : INTEGER;
  32.   BEGIN
  33.     Parameter := '';
  34.     FOR i := 2 TO ParamCount DO
  35.       Parameter := Parameter + ParamStr(i) + ' ';
  36.   END;
  37.  
  38.   PROCEDURE Execute(Pfad, Name : STRING);
  39.   VAR
  40.     ch : Char;
  41.   BEGIN
  42.     WriteLn(Pfad + Name, ' ', Parameter);
  43.     WriteLn('Soll diese Datei ausgeführt werden? (J/N)');
  44.     ch := UpCase(ReadKey);
  45.     IF ch = 'J' THEN BEGIN
  46.       IF Length(Pfad) > 3 THEN
  47.         Delete(Pfad, Length(Pfad), 1);
  48.       ChDir(Pfad);
  49.       Exec(Name, Parameter);
  50.       ChDir(AlterPfad);
  51.       Halt(0);
  52.     END;
  53.   END;
  54.  
  55.   PROCEDURE Suchen(Pfad : STRING);
  56.   VAR
  57.     s : SearchRec;
  58.   BEGIN
  59.     FindFirst(Pfad + '*.*', $37, s);
  60.     WHILE DosError = 0 DO BEGIN
  61.       IF ((s.attr = 16) OR (s.attr = 18)) AND
  62.          (s.name <> '.') AND (s.name <> '..') THEN
  63.         Suchen(Pfad + s.name + '\')
  64.       ELSE
  65.         IF (s.name = Name + '.COM') OR
  66.            (s.name = Name + '.EXE') THEN
  67.           Execute(Pfad, s.name);
  68.       FindNext(s);
  69.     END;
  70.   END;
  71.  
  72. BEGIN
  73.   GetDir(0, AlterPfad);
  74.   Laufwerk_Name;
  75.   ParameterAuswerten;
  76.   Suchen(laufwerk + '\');
  77.   WriteLn('Suchvorgang beendet!', #7);
  78. END.
  79. (* ------------------------------------------------------ *)
  80. (*                 Ende von EXECUTE.PAS                   *)