С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/437: Рейтинг темы: голосов - 437, средняя оценка - 4.82
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
1

Коды возврата ошибок (расшифровки ErrorLevel)*

20.12.2012, 22:21. Просмотров 79595. Ответов 33

Коды возврата ошибок (встроенных команд и других программ)

Как получить код возврата

Для новичков - очень подробно расписано в теме: Выполнение действия, если операция копирования прошла неуспешно

Порядок получения код возврата
Запускаем приложение, следующей командой проверяем переменную %ErrorLevel%. Есть еще такие варианты написания.
Например,
Bash
1
2
3
4
::Упаковать все документы
rar.exe a arch.rar *.doc
::Вывести на экран код возврата
Echo %ErrorLevel%
Не забываем, что внутри скобок и под циклом ErrorLevel можно получить только включив отложенное расширение переменных среды:
Bash
1
2
3
4
5
Setlocal EnableDelayedExpansion
(
  copy /y *.doc d:\*.*
  if !errorlevel!==0 Echo Operation Successful
)
В языках высокого уровня код возврата можно получить API функцией:

GetExitCodeProcess
GetExitCodeThread

А задать код при выходе из программы с помощью функций:

ExitProcess
ExitThread

либо указав число, которое вернет основная функция,
например main в C++:
Код
return 5;
или в AutoIt:
Код
Exit 5


Как сгенерировать код возврата


В Batch:
1. Выполнив команду, которая возвращает Errorlevel, например: cmd /c exit /b 5
где 5 - произвольный код в пределах от -2147483648 до +2147483647

В языках высокого уровня код возврата можно сгенерировать API функцией:
ExitProcess - http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
при этом приложение будет завершено.

Дополнение от Alterex на счет set ErrorLevel=



Общепринятые коды возврата консольных команд DWORD-коды
Преобразование текста ошибок в пользовательский код возврата.

Перечень ErrorLevel в этой теме:

WinRAR (rar.exe)
cmd.exe
copy
xcopy

RoboCopy
ARJ32/Console
7-Zip
msiexec, WMIC
WGET
ping
Windows Scripting Host
FC
Ошибки, возвращаемые FTP-сервером
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 22:21
Ответы с готовыми решениями:

Параноя возврата ошибок. Стоит ли проверять каждое действие? Когда останавливаться?
Если... если..если.. Партянка будет длинной.. Например, через 10 лет села...

Сгенерировать коды ошибок CMD
Добрый, помогите плиз сгенерировать сообщения об ошибках в командной строке CMD...

Коды ошибок Windows
Вам приходилось встречать при работе на компьютере раздражающие всплывающие...

Проверка %ERRORLEVEL%
Добрый день! Помогите пожалуйста. После запуска команды необходимо сделать...

%ERRORLEVEL% в Windows Embedded CE 6.0
@echo off set count=0 :begin set /A count=count+1 ping localhost -n 10 ...

33
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
08.06.2013, 18:51  [ТС] 21
Хорошая тема с простыми примерами, как пользоваться кодами возврата ошибок и сокращенными записями || и &&

Выполнение действия, если операция копирования прошла неуспешно
0
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
31.07.2013, 01:11  [ТС] 22
Многие родные Microsoft программы, такие как msiexec-установщик, WMIC... используют коды возврата ошибок API-функций.

MSDN: API System Error Codes

Код из скрина:
Bash
1
wmic /NameSpace:\\root\default Class StdRegProv Call CreateKey hDefKey="&H80000002" sSubKeyName="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\fuc_avers"
0
Миниатюры
Коды возврата ошибок (расшифровки ErrorLevel)*  
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
22.09.2013, 23:46  [ТС] 23
WGET
Утилита для скачивания с HTTP, HTTPS, FTP файлов и целых сайтов.

Код возврата
Описание
0No problems occurred.
1Generic error code.
2Parse error—for instance, when parsing command-line options, the ‘.wgetrc’ or ‘.netrc’...
3File I/O error.
4Network failure.
5SSL verification failure.
6Username/password authentication failure.
7Protocol errors.
8Server issued an error response.

With the exceptions of 0 and 1, the lower-numbered exit codes take precedence over higher-numbered ones, when multiple types of errors are encountered.
0
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
16.01.2014, 03:51  [ТС] 24
Как MS-DOS сообщала о кодах ошибок?

Важность обратной совместимости кодов ошибок
1
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
26.03.2014, 01:22  [ТС] 25
Использование ErrorLevel в Win9x и MS-DOS.
2
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
01.05.2014, 21:35  [ТС] 26
ping - коды ошибок (MSDN)
3
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
13.07.2014, 01:37  [ТС] 27
Все коды ошибок Windows Scripting Host

(с примерами и пояснениями для разрешения проблем).

Перечень ошибок


Categories of VBScript 800xxxxx error codes
  • Code 80005xxx - ADSI errors
  • Code 8007xxxx - Operating System error e.g. Windows Server
  • Code 800Axxxx - Syntax errors
  • Sundry Errors

Code 80005xxx - ADSI errors
Errors beginning with 80005xxx point to an ADSI error in your VBScript. While the message box calls them ADSI, I think of them as LDAP errors. For example, suppose that you are scripting a user's properties and you type givename instead of givenName (two ns), that mistake in the ADSI / LDAP name would generate an 80005xxx error.

Code 80005000 Object Required
Code 80005001 An unknown ADSI domain object was requested
Code 80005002 An unknown ADSI user object was requested
Code 80005003 An unknown ADSI computer object was requested
Code 8000500D The directory property cannot be found

Sundry Errors - Including WMI and MSN
Code 8002009 Error Setting Default Printer
Code 80020005 Type mismatch
Code 8002801c DllRegisterServer in COM failed
Code 800401E4 Syntax error
Code 80040E14 One or more errors occurred during processing of command
Code 80040E37 Table does not exist
Code 80041001 Call Failed
Code 80041002 Object not Found
Code 80041006 Insufficient Memory
Code 80041010 Spelling mistake in a keyword
Code 80041013 Provider not Found
Code 80041014 Component Error
Code 80041021 Syntax error in WMI winmgmts \\
Code 80048820 MSN Messenger server problem
Code 80048821 MSN Messenger email username problem
Code 80048823 MSN Messenger password
Code 8004888D MSN Service is temporarily unavailable
Code 81000306 MSN Messenger server down?
Code 81000314 MSN Messenger server down?

Code 8007xxxx - Operating System Error e.g. Windows 7 / Server 2003 / 8
If your error begins with 8007xxxx then look for an factor outside VBScript. For instance, check the spelling of the name of your share or printer. Another possibility is that the server named in the script, is simply down or otherwise unavailable.

Code 80070005 Access denied
Code 80070035 The network PATH cannot be found
Code 80070043 The network NAME cannot be found
Code 80070055 The local device name is already in use
Code 8007007B The filename, directory or volume is incorrect
Code 800704B0 The specified device name is invalid
Code 800704B2 An attempt was made to remember a device .......
Code 800704B3 No network provider accepted the given network path
Code 800704CA This network connection does not exist
Code 800704C3 Multiple Connections to a server or shared resource...
Code 800704CF The network location cannot be reached
Code 8007052E Logon Failure: unknown user name or bad password
Code 80070571 The media is corrupt
Code 800706B5 The Interface is Unknown
Code 800706BA The RPC server is unavailable
Code 80070709 The Printer name is invalid
Code 80070961 This network connection has files open or requests pending
Code 80071329 Object Already Exists
Code 8007200E The Directory Service is Busy
Code 80072020 An operations error occurred
Code 8007202B A referral was returned from the server
Code 80072030 There is no such object on the server
Code 80072032 LDAP syntax error. Possibly a missing element e.g. cn=
Code 80072035 The server is unwilling to process the request
Code 8007203A The server is not operational
Code 80072EE2 Windows Update Service Problem

Code 8009xxxx
Code 80092023 Illegal character in a key name for a certificate

Code 800Axxxx Syntax Errors
In VBScript, there are 53 syntax errors all beginning with 800Axxxx. These errors should be among the easiest to cure because the message often includes the missing punctuation mark or bracket.

Code 800A0005 Invalid Procedure Call
Code 800A000D Type Mismatch
Code 800A0035 File not found
Code 800A003A File Already Exists
Code 800A0046 Permission denied
Code 800A004C Path not found
Code 800A01A8 Object required
Code 800A01AD ActiveX component can't create object
Code 800A01B6 Object doesn't support this property or method
Code 800A01BD Object doesn't support this ACTION
Code 800A01C3 Object not a collection
Code 800A01C2 Invalid property assignment
Code 800A01CE Remote Server does not exist (or is unavailable)
Code 800A01F4 Variable undefined
Code 800A01F5 Illegal assignment
Code 800A03EA Syntax Error
Code 800A03EE Expected ')'
Code 800A03F1 Variable is undefined
Code 800A03F2 Expected Identifier
Code 800A03F4 Variable Undefined
Code 800A03F6 Expected End
Code 800A03FD Expected 'Case'
Code 800A0400 Expected statement
Code 800A0401 Expected end of statement
Code 800A0407 Invalid Number
Code 800A0408 Invalid Character
Code 800A0409 Unterminated string constant
Code 800A041F Unexpected Next
Code 800A139B - Expected ']' in regular expression
Code 800A139A - Expected quantifier in regular expression
Code 800A0CC1 Item cannot be found in the collection
3
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
12.09.2014, 14:16  [ТС] 28
Команда FC.

Сравнение файлов по содержимому.
Bash
1
2
FC /B 1.txt 2.txt
echo %errorlevel%
  • 0 - если файлы совпадают
  • 1 - если файлы не совпадают
  • 2 - если хотя бы один из файлов не найден
3
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
29.06.2015, 16:23  [ТС] 29
Ошибки, возвращаемые FTP-сервером

ОшибкаОписание
110Комментарий
120Функция будет реализована через nnn минут
125Канал открыт, обмен данными начат
150Статус файла правилен, подготавливается открытие канала
200Команда корректна
211Системный статус или отклик на справочный запрос
212Состояние каталога
213Состояние файла
214Справочное поясняющее сообщение
220Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры
221Благополучное завершение по команде quit
225Канал сформирован, но информационный обмен отсутствует
226Закрытие канала, обмен завершен успешно
230Пользователь идентифицирован, продолжайте
250Запрос прошел успешно
331Имя пользователя корректно, нужен пароль
332Для входа в систему необходима аутентификация
421Процедура не возможна, канал закрывается
425Открытие информационного канала не возможно
426Канал закрыт, обмен прерван
450Запрошенная функция не реализована, файл не доступен, например, занят
451Локальная ошибка, операция прервана
452Ошибка при записи файла (не достаточно места)
500Синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна)
501Синтаксическая ошибка (неверный параметр или аргумент)
502Команда не используется (нелегальный тип MODE)
503Неудачная последовательность команд
504Команда не применима для такого параметра
530Система не загружена (not logged in)
532Необходима аутентификация для запоминания файла
550Запрошенная функция не реализована, файл не доступен, например, не найден
552Запрошенная операция прервана, недостаточно выделено памяти
2
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
22.10.2015, 21:20  [ТС] 30
xcopy под циклом всегда возвращает нулевой код возврата. Надо бы поизучать вопрос детальнее.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
 
set src=2
set dst=3
 
xcopy /y 2\123.doc 3
echo err=%errorlevel%
 
For /F "delims=" %%a in ('dir /b /a-d "%src%\*"') do call :ErrorHandler "%src%\%%a" "%dst%"
  rem if not errorlevel 1 del /F /A "%src%\%%a"
pause
goto :eof
 
:ErrorHandler
  xcopy /c /h /r /y /i /k "%~1" "%~2"
  echo err=%errorlevel%
Попробуйте закинуть в папку 2 и 3 файл 123.doc, затем открыть его вордом из папки 3 и запустить бат.
1
Mikl___
Автор FAQ
11997 / 6262 / 598
Регистрация: 11.11.2010
Сообщений: 11,334
07.11.2015, 03:20 31
Dragokas, Charles Kludge,
при формировании таблицы с заголовком делайте так
[TАВLЕ=head]...
...[/TАВLЕ]
2
Alterex
25 / 11 / 6
Регистрация: 06.11.2015
Сообщений: 37
07.11.2015, 03:20 32
По поводу того «как сгенерировать код возврата» из первого сообщения: второй пункт неверный.

Командный интерпретатор добавляет в окружение переменную с именем ERRORLEVEL.
Если эта переменная не переопределена пользователем, то она связана с кодом возврата последней выполненной команды. Только в этом случае командный интерпретатор расширяет %ERRORLEVEL% в строковое представление кода возврата последней выполненной команды. При этом команда SET ERRORLEVEL сообщает, что переменная среды не определена, но проверка условия if defined ERRORLEVEL возвращает истинное значение.
Если же пользователем определена своя переменная окружения с именем ERRORLEVEL, то она уже никак не связана с кодом возврата последней выполненной команды. В этом случае, если выполнить команду SET ERRORLEVEL=0, эта переменная просто перекрывает внутреннюю переменную командного интерпретатора с таким же именем. Вместо "0" можно присвоить переменной вообще что угодно, хоть "It’s OK", это никак не влияет на само значение кода возврата. И, например, если какая-либо команда вернет значение 1, проверка условия if %ERRORLEVEL% NEQ 0 все-равно вернет ложное значение, хотя в тоже время условие if errorlevel 1 вернет истину.
Ниже пример.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off
 
echo.
echo === Using internal ERRORLEVEL variable ========================================
:: Пытаемся создать существующую директорию.
mkdir C:
:: Значение переменной ERRORLEVEL устанавливается на основе кода завершения.
if errorlevel 1 echo Exit code: %ERRORLEVEL%
:: Проверяем существует ли переменная среды с именем ERRORLEVEL.
set ERRORLEVEL
echo.
 
echo === Using our ERRORLEVEL variable =============================================
:: Создаем переменную, которая перекрывает внутреннюю переменную ERRORLEVEL.
set ERRORLEVEL=0
:: Пытаемся перейти в несуществующую директорию.
cd .\BD9FF6A1-3D3D-4839-B7F0-0BD770EB1445
:: Значение переопределенной переменной ERRORLEVEL не связано с кодом завершения.
if errorlevel 1 echo Exit code: %ERRORLEVEL%
:: Проверяем существует ли переменная среды с именем ERRORLEVEL.
set ERRORLEVEL
:: Удаляем переопределенную переменную ERRORLEVEL.
set ERRORLEVEL=
echo.
 
echo === Again using internal ERRORLEVEL variable ==================================
:: Пытаемся создать директорию с недопустимым именем.
mkdir .\???
:: Значение переменной ERRORLEVEL вновь устанавливается на основе кода завершения.
if errorlevel 1 echo Exit code: %ERRORLEVEL%
:: Проверяем существует ли переменная среды с именем ERRORLEVEL.
set ERRORLEVEL
echo.
В общем переопределять внутреннюю переменную ERRORLEVEL - не очень хорошая мысль в принципе: изменить с помощью этой переменной код возврата не получится, а вот на грабли наступить вполне возможно.
0
Dragokas
07.11.2015, 13:49  [ТС]
  #33
Alterex, спасибо. Даже не знаю, почему решил так написать.
Удалил пункт № 2.
0
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
09.11.2018, 23:28  [ТС] 34


Добавлено через 7 минут
Информация от Aacini (с машинным переводом).

В этом ответе описываются значения ERRORLEVEL, возвращаемые всеми внутренними командами cmd.exe; они сгруппированы по способу изменения стоимости и представлены в виде кратких справочных таблиц. Я просмотрел другие подобные таблицы, чтобы собрать этот, но заполнил недостающие значения с помощью тестов, выполненных на компьютере под управлением Windows 8.1. Я приложил все усилия, чтобы эти таблицы были полными и точными, но я не тестировал каждый из приведенных здесь значений, поэтому это могут быть тонкие несоответствия.

Таблица 1 - Команды, которые не изменяют предыдущее значение ERRORLEVEL
Код
BREAK
ECHO
ENDLOCAL
FOR      Not change the ERRORLEVEL by itself. See "Exit Code" below.
IF       Not change the ERRORLEVEL by itself.
PAUSE
RD       Not change the ERRORLEVEL on errors, but the "Exit Code". See below.
REM
RMDIR    Same as RD.
SET      Plain SET command (no arguments). See "Table 3" below.
TITLE
Таблица 2 - Команды, которые устанавливают ERRORLEVEL в 0 или 1 в зависимости от результата
Код
Command │ Set ERRORLEVEL = 0 when       │ Set ERRORLEVEL = 1 when
────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────
CD      │Current directory was changed. │Directory not exists or is not accessible.
CHDIR   │Same as CD.                    │
COLOR   │Color was changed.             │Background and foreground colors are the same.
COPY    │File(s) was processed.         │File not found or bad parameters given.
DATE    │Date was changed or not given. │User has no admin privileges.
DEL     │Almost always, excepting when: │Bad or no parameters given.
DIR     │Same as COPY.                  │
ERASE   │Same as DEL.                   │
MD      │Directory was created.         │Directory could not be created.
MKDIR   │Same as MD.                    │
MKLINK  │Link was created.              │Link could not be created or bad parameters given.
MOVE    │File(s) was moved/renamed.     │File not found, could not be moved/renamed or bad parameters.
PUSHD   │Same as CD.                    │+ Bad switch given.
REN     │Same as MOVE.                  │
RENAME  │Same as MOVE.                  │
SETLOCAL│New environment was created.   │Bad parameters given.
TIME    │Time was changed or not given. │User has no admin privileges.
TYPE    │Same as COPY.                  │
VERIFY  │Right or no parameters given.  │Bad parameters given.
VOL     │Volume label was displayed.    │Drive not found or bad parameters given.
Таблица 3 - Команды, которые устанавливают ошибку ERRORLEVEL; в противном случае не меняйте его
Код
Command      │E│ Set ERRORLEVEL to = when
─────────────┼─┼────────────────────────────────────────────────────────────────────────
ASSOC        │*│1 = Extension associations could not be changed.
CLS          │ │1 = Bad switch given.
DPATH        │*│1 = Data path could not be established.
FTYPE        │*│1 = File type associations could not be changed.
GOTO label   │ │1 = Label not exist *in a subroutine* (equivalent to: EXIT /B 1).
KEYS         │ │1 = Bad switch given.
PATH         │*│1 = Path could not be changed.
POPD         │ │1 = Bad switch given.
PROMPT       |*│1 = Prompt could not be changed.
SET var      │*│1 = No variable with such name exists.
SET var=value│*│1 = Variable name start with "/" not enclosed in quotes.
SET /P       │*│1 = Read an empty line or at end of file.
SET /A       │*│1073750988 = Unbalanced parentheses, 1073750989 = Missing operand, 
             │ │1073750990 = Syntax error, 1073750991 = Invalid number,
             │ │1073750992 = Number larger than 32-bits, 1073750993 = Division by zero.
SHIFT        │ │1 = Bad switch given.
В столбце "E" в таблице 3 указаны команды, которые изменяют свое поведение соответственно статусу "Расширения", как описано в соответствующей документации. Когда расширения включены (по умолчанию), и эти команды помещаются в файл с расширением .CMD вместо .BAT one, эти команды устанавливают SETERRORLEVEL = 0, когда они заканчиваются без ошибок, то есть когда условия, описанные в таблице 3 нет.

Таблица 4 - Особые случаи
Код
CALL Table1     │If the called command is anyone of Table 1 (excepting FOR and IF): set ERRORLEVEL = 0.
CALL subroutine │If the subroutine is called, not change prior ERRORLEVEL value;
                │otherwise (subroutine not exists): set ERRORLEVEL = 1.
EXIT /B, EXIT   │Not change prior ERRORLEVEL value.
EXIT /B number  │Set ERRORLEVEL to given number.
EXIT number     │Ends cmd.exe and set its returning ERRORLEVEL value to given number.
START command   │If command is started, not change ERRORLEVEL; otherwise, set ERRORLEVEL = 9059.
START /WAIT bat |When the started Batch file end, set ERRORLEVEL = value from 'EXIT number' commmand.
notExist        │If a non-existent command is entered for execution, set ERRORLEVEL = 9009.
VER             │Set ERRORLEVEL = 0 almost always. If /? parameter is given, not change ERRORLEVEL.
Управление кодом выхода
Существует два способа проверить значение ERRORLEVEL: через команду IF ERRORLEVEL / IF %ERRORLEVEL%или с помощью конструкции command && thenCmd when ERRORLEVEL is 0 || elseCmd when ERRORLEVEL is not 0. Однако некоторые определенные команды и ошибки перенаправления возвращают значение, которое работает только во втором случае и не отражается в ERRORLEVEL; мы можем назвать это "Код выхода". Если этот код выхода не равен нулю, его можно передать на ERRORLEVEL, выполнив любую команду в таблице 1 в части elseCmd. Вы можете прочитать дополнительную информацию по этому вопросу в этом сообщении.

Таблица 5 - Команды или функции, которые устанавливают код выхода
Код
Feature      │ Set Exit Code to = when
─────────────┼─────────────────────────────────────────────────────────────────────────
command      │1 = Command not exist (when ERRORLEVEL = 9009).
redirection  │1 = File not exists in "<", path not exists or access denied in ">" ">>".
drive:       |1 = Drive unit not exists.
POPD         |1 = No matching PUSHD was previously executed.
RD           │1 = Bad switch given, 2 = Directory not found, 5 = Access denied,
             │32 = Directory in use, 145 = Directory not empty.
FOR /F       │1 = No data was processed.
Например, чтобы проверить, произошла ли ошибка перенаправления, используйте это:
Код
command > C:\Path\that\does\not\exist\file.txt || rem
if errorlevel 1 echo Previous redirection failed
В этом примере команда rem используется для копирования кода выхода в ERRORLEVEL, но может использоваться любая другая внутренняя команда, которая сохраняет ERRORLEVEL (кроме FOR и IF).
Проверить, существует ли накопитель:
Код
U: || rem
if errorlevel 1 echo Previous set current drive to U: unit failed
Другие примеры:
Код
rd c:\Some\directory 2> NUL || rem
if %errorlevel% equ 0 (
   echo Directory deleted
) else if %errorlevel% equ 2 (
   echo Directory not found
) else if %errorlevel% equ 5 (
   echo Can not access the directory, check rights
) else if %errorlevel% equ 32 (
   echo Can not delete current directory
) else if %errorlevel% equ 145 (
   echo Directory is not empty, use /S switch
)
(for /F "options" %%a in (input.txt) do echo %%a) || rem
if errorlevel 1 echo Previous FOR didn't processed any value
2
09.11.2018, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2018, 23:28

Обработка значения ERRORLEVEL
есть скриптик, кусок его прилагаю errorlevel выдает 17, хотя должен по моему...

Обработка значения ERRORLEVEL
Привет всем! Столкнулся с проблемой обработки значения errorlevel. Вызываю...

Получение ERRORLEVEL команды TASKKILL
Здравствуйте. В системе периодически запускается скрипт, работа которого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru