2015-07-15 2 views
-1

Я новичок в пакетном скриптинге. Не могли бы вы рассказать мне, в чем разница между goto :eof и :eof? И почему некоторые люди пишут !ERRORLEVEL! с восклицательными знаками?разница goto: eof и: eof

Извините за задание Noob, но я не смог найти ответ. Спасибо!

ответ

1

:eof - ссылка на конец файла, виртуальная метка (не обязательно должна быть определена), где можно перейти к концу текущего контекста пакета.

goto является команда используется для перехода (прерывать текущий поток и продолжить в другом названном пункте) к метке

goto :eof является переход к концу файла

errorlevel это имя переменная, которая содержит код выхода последней выполненной команды (если она ее устанавливает)

Если вы хотите получить значение внутри этой переменной, вы используете %errorlevel%.

Но, как и в пакетных файлах, переменные заменяются на значение во время разбора (пожалуйста, прочитайте here), иногда необходимо указать синтаксическому анализатору, что это не должно быть сделано, и используется синтаксис с задержкой расширения, поэтому переменная операции чтения не заменяются до момента выполнения команды. Синтаксис для указания этого анализатора равен !errorlevel! с включенным задержанным расширением (setlocal enabledelayedexpansion).

+0

Большое спасибо, теперь ясно для меня! И спасибо за ссылку. – Clam