home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* DO.PAS *)
- (* Joker für DOS-Kommandos *)
- (* (c) 1992 Thomas Mai & DMV-Verlag *)
- (* ------------------------------------------------------ *)
- {$M 8192,0,0}
- {$D-,L-,R-,S-,I-}
-
- PROGRAM _DO;
-
- USES Dos, Crt;
-
- VAR
- sCom,
- sPath : STRING;
- bN : BYTE;
- ch : CHAR;
-
- PROCEDURE Scan(P : STRING);
- VAR
- Rec : SearchRec;
- S : STRING;
- BEGIN
- FindFirst(P + '*.*', $3F, Rec);
- WHILE DosError <> 18 DO BEGIN
- IF KeyPressed THEN BEGIN
- ch := ReadKey;
- IF (ch = #3) THEN BEGIN
- ChDir(sPath); Halt(1);
- END;
- END;
- IF (Rec.Attr AND 16 SHR 4 <> 0) AND
- (Rec.Name <> '.') AND
- (Rec.Name <> '..') THEN BEGIN
- WriteLn(#13#10, P + Rec.Name);
- ChDir(P + Rec.Name);
- SwapVectors;
- Exec(GetEnv('COMSPEC'), sCom);
- SwapVectors;
- Scan(P + Rec.name + '\');
- END;
- FindNext(Rec);
- END;
- END;
-
- BEGIN
- IF ParamCount = 0 THEN
- Writeln('Aufruf: DO <DOS-Befehl>')
- ELSE BEGIN
- sCom := '';
- FOR bN := 1 TO ParamCount DO
- sCom := sCom + Paramstr(bN) + #32;
- sCom := '/C' + #32 + sCom;
- GetDir(0, sPath);
- Scan(sPath[1] + ':\');
- ChDir(sPath);
- END;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von DO.PAS *)