Переходы и метки.
В командных файлах можно использовать команды условного перехода, меняющие логику их работы в зависимости от выполнения определенных условий. Для иллюстрации приемов использования условных переходов создадим командный файл, целью которого будет присвоение заранее определенной буквы для съемных носителей, в качестве которых будут использоваться флэш-диски. Условия таковы - есть 2 флэш-диска, один из которых должен быть виден в проводнике как диск X: а второй - как диск Y: независимо от того, в какой порт USB они подключены и какие буквы присвоены им операционной системой. Будем считать, что реальные диски могут быть подключены как F: или G: Опознавание дисков будем выполнять по наличию файла с определенным именем (лучше такой файл сделать скрытым в корневом каталоге и назвать его как-нибудь необычно): Flashd1.let - на первом диске Flashd2.let - на втором Таким образом, задача командного файла заключается в том, чтобы проверить наличие на сменных дисках F: и G: файлов Flashd1.let или Flashd2.let и, в зависимости от того, какой из них присутствует, присвоить диску букву X: или Y: Для поиска файла на диске воспользуемся командой IF EXIST: Для решения задачи, создаем командный файл, например setletter.bat, следующего содержания: @ECHO OFF После выполнения этого командного файла у вас появятся диски X: и Y: GOTO метка @ECHO OFF Конечно, данный пример не может считаться образцом программирования, но главная цель, в данном случае, это не написание оптимального командного сценария, а пояснения принципов использования меток и переходов. Далее по тексту, я старался, насколько это возможно, использовать именно такой подход - главное не оптимальность кода командного файла, а его максимальная простота для понимания. При выполнении измененного таким образом командного файла, сообщение об ошибке при выполнении SUBST исчезнет. Одним из важнейших приемов при написании сложных командных файлов является анализ успешности выполнения конкретной команды или программы. Признаки ошибок при выполнении команд можно отслеживать, анализируя специальную переменную ERRORLEVEL, значение которой формируется при выполнении большинства программ. Обычно ERRORLEVEL равно нулю, если программа завершилась без ошибок и единице - при возникновении ошибки. Могут быть и другие значения, если они предусмотрены в выполняемой программе. В качестве команды в строке командного файла можно использовать также командный файл. Причем, для передачи с возвратом обратно к точке выполнения вызывающего командного файла используется команда CALL. Попробуйте создать командный файл test.bat, следующего содержания: @ECHO OFF В этом же каталоге, создайте второй файл под именем 1.bat, содержащий команду PAUSE, приостанавливающую выполнение командного файла до нажатия любой клавиши. @ECHO OFF При выполнении командного файла test.bat будет выдано на экран сообщение Вызываемый командный файл может создавать переменные и присваивать им определенные значения, которые будут доступны для обработки в вызывающем файле. Попробуйте изменить файл test.bat на следующее содержимое: @ECHO OFF а в файле 1.bat на следующее @ECHO OFF Кстати, используя передачу управления командному файлу, можно организовать его зацикливание. Попробуйте добавить в конец файла test.bat строку: CALL test.bat Выйти из зацикливания командного файла можно по нажатию комбинации CTRL-Break.
Яндекс.ДиректЗаработать 90 000 руб. для меня так же просто, как поспать 2 часа утром!super-earn.com
|