Thanks Jason, it's definitely GDAL. The order doesn't matter and I've checked ERRORLEVEL v. %ERRORLEVEL% (see below). I don't think it's related to the batch file which is just a minimal test script. The issue occurs with every Windows python script I've written that imports gdal - i.e sys.exit(anything >0) will always set an exit code of 0 if gdal is imported. Running python from the command prompt does the same thing.
set pycmd=python -c "from osgeo import gdal;import sys;sys.exit(1)" echo %pycmd% %pycmd% if ERRORLEVEL 1 ( echo ERROR LEVEL is 1 or greater ) ELSE ( echo ERROR LEVEL is incorrect ) echo ERROR LEVEL=%ERRORLEVEL% Interestingly, one of the users of my code who originally reported the issue to me found that that ERRORLEVEL is set correctly in Windows XP. I'll file a ticket in TRAC. Luke On 27 September 2012 03:12, Jason Roberts wrote: > > Luke, > > > > Interesting problem. Perhaps it could be related to the behavior described > here? I’m not exactly sure how—maybe it is related to some subtle thing about > your batch file, not GDAL—but in any case, I found this part very interesting: > > > > Now, it does happen to be the case that if command extensions are enabled and > you say %ERRORLEVEL%, then the command processor first looks for an > environment variable called ERRORLEVEL, and if it can't find one, then it > replaces %ERRORLEVEL% with the current value of the internal error level > value. > > > > Do the results of your file come out the same when you switch the order of > your tests, i.e. you try the non-GDAL case first and the GDAL case second? > > > > Hope that helps, > > > > Jason > > > > _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev