[Back to DOS SWAG index] [Back to Main SWAG index] [Original]

    program chkpath;

    Uses Dos;

    Procedure GetNextPath ( var Path, CurrPath : String );

    Var
       SemiPos : Byte;

    Begin

       SemiPos := Pos(';',Path);

       If SemiPos = 0 then
          Begin
             CurrPath := Path;
             Path := '';
          End
       Else
          Begin
             CurrPath := Copy(Path,1,SemiPos - 1);
             Path := Copy(Path,SemiPos + 1, Length(Path));
          End;
    End;

    Function CheckPath( Path : String ) : Boolean;

    Var
       Result : Integer;

    Begin

    {$I-}
       ChDir(Path);
    {$I-}

       Result := IOResult;

       CheckPath := (Result = 0);

    End;

    Var
       PathStr  : String;
       CurrPath : String;
       SaveDir  : String;
       Count    : Byte;

    Begin

       WriteLn('Check Path : By Tony Nelson : FreeWare 1993');
       WriteLn('Checking your current path for nonexistent entries...');
       WriteLn;

       GetDir(0,SaveDir);

       PathStr := GetEnv('Path');

       While (PathStr) <> '' do
          Begin
             GetNextPath(PathStr, CurrPath);

             If not CheckPath(CurrPath) then
                Begin
                   WriteLn(CurrPath,' is invalid!');
                   Inc(Count);
                End;
          End;

       If Count <> 0 then
          WriteLn;

       WriteLn('Found ',Count,' nonexistent entries.');

       ChDir(SaveDir);

    End.

[Back to DOS SWAG index] [Back to Main SWAG index] [Original]