Извините, что удалили старый поток, но стоит отметить, что% ERRORLEVEL% не сбрасывается с помощью команды каждой . Вы все еще можете проверить «положительный» уровень ошибки после нескольких строк последующего и успешного кода пакета.
Вы можете надежно сбросить уровень ошибки до чистого состояния с помощью ver
. Этот пример работает с UnxUtils для большего списка каталогов Linux-ish. Сброс может показаться посторонним в конце, но не в том случае, если мне нужно вызвать этот скрипт из другого.
:------------------------------------------------------------------------------
: ll.bat - batch doing its best to emulate UNIX
: Using UnxUtils when available, it's nearly unix.
:------------------------------------------------------------------------------
: ll.bat - long list: batch doing its best to emulate UNIX
: ------------------------------------
: zedmelon, designer, 2005 | freeware
:------------------------------------------------------------------------------
@echo off
setlocal
: use the UnxUtil ls.exe if it is in the path
ls.exe -laF %1 2>nul
if errorlevel 1 (
echo.
echo ----- ls, DOS-style, as no ls.exe was found in the path -----
echo.
dir /q %1
)
: reset errorlevel
ver>nul
endlocal
Не стесняйтесь использовать это. Если вы еще не видели UnxUtils, проверьте их.