Top Document: comp.os.msdos.programmer FAQ part 3/5 Previous Document: Next Document: See reader questions & answers on this topic! - Help others by sharing your knowledge The standard way, which in fact is documented in the DOS manual, is: if exist d:\path\nul goto found Unfortunately, this is not entirely reliable. I found it failed in Pathworks (a/k/a PCSA, DEC's network that connects PCs and VAXes), or on a MARS box that uses an OEM version of MS-DOS 5.0. Readers have reported that it gave the wrong answer on Novell networks, on DR-DOS, and in a DOS window under OS/2. By "failed" I mean that it "found" a directory that didn't exist, or failed to find one that did exist, or both. (It has been reported that IBM fixed the OS/2 bug in version 2.11 of OS/2.) As a legacy from earlier versions of DOS it always succeeds if the path is DEV. There appears to be no foolproof way to use pure batch commands to test for existence of a directory. The real solution is to write a program, which returns a value that your batch program can then test with an "if errorlevel". Reader Duncan Murdoch kindly posted the following Turbo Pascal version: program existdir; { Confirms the existence of a directory given on the command line. Returns errorlevel 2 on error, 1 if not found, 0 if found. } uses dos; var s : searchrec; begin if paramcount <> 1 then begin writeln('Syntax: EXISTDIR directory'); halt(2); end else begin findfirst(paramstr(1),Directory,S); while (Doserror = 0) and ((Directory and S.Attr) = 0) do findnext(S); if Doserror <> 0 then begin Writeln('Directory not found.'); halt(1); end else begin Writeln('Directory found.'); halt(0); end; end; end. Timo Salmi also has a Turbo Pascal version in his Turbo Pascal FAQ, which is downloadable as <ftp://garbo.uwasa.fi/pc/link/> User Contributions:Top Document: comp.os.msdos.programmer FAQ part 3/5 Previous Document: Next Document: Part1 - Part2 - Part3 - Part4 - Part5 - Single Page [ Usenet FAQs | Web FAQs | Documents | RFC Index ] Send corrections/additions to the FAQ Maintainer: jeffrey@carlyle.org (Jeffrey Carlyle)
Last Update March 27 2014 @ 02:11 PM
|
Comment about this article, ask questions, or add new information about this topic: