FIND.EXE Does Not Return the Proper Errorlevel in Windows NT

ID: q106203

The information in this article applies to:

SYMPTOMS

The Find command (FIND.EXE) in Windows does not return the proper errorlevel. Under MS-DOS, FIND.EXE returns a zero (0) or one (1), based on whether a string is found in a file. It only returns a zero under Windows NT.

STATUS

Microsoft has confirmed this to be a problem in Windows NT version 3.1 and Windows NT Advanced Server version 3.1. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Steps to Reproduce Problem

1. Create the following batch file called FINDIT.BAT in the root

   directory of drive C.

      @echo off
      find %1 c:\findit.bat
      if errorlevel 1 goto ONE
      if errorlevel 0 goto ZERO
      goto END
      :ONE
      echo Errorlevel is 1, %1 not found
      goto END
      :ZERO
      echo Errorlevel is 0, %1 found
      goto END
      :END

2. Boot to MS-DOS and type the command line FINDIT ONE, FINDIT ZERO,
   FINDIT TWO.

   For the first two commands, it will return errorlevel 0, for the
   third, it will return 1.

3. Boot to Windows NT and type the same commands.

   All commands will return errorlevel 0.

Additional query words: prodnt error level
Keywords          : kbtool
Version           : 3.1
Platform          : WINDOWS

Last Reviewed: August 17, 1998