Сделать стартовой Отправить e-mail Главная  Блог  Новости  Форум  Гостевая  Статьи  Файлы  Изображения  Онлайн игры  Сайты  Фильмы на DVD  Каталог карт CS  Winamp обложки English version Die deutsche version La version francaise النسخة العربية

Каталог статей

Главная » Статьи » Компьютеры » OS Windows » Команды пакетных программ [ Добавить материал ]
 
Компьютерный моддинг [1] Программирование на C++ [12] Комуникация и сети [9]
Взлом (Хак) Hack [10] OS Windows [10] Безопасность [15]
InterNet [35]
 
Команды пакетных программ
28.11.2007

Команды пакетных программ

Пакетные программы (также называемые пакетными файлами) позволяют упростить утомительные или часто используемые операции. Пакетная программа представляет собой неформатированный текстовый файл, содержащий одну или несколько команд и имеющий расширение имени .bat или .cmd. Когда имя такого файла вводится в командной строке, команды, записанные в файле, выполняются в заданной последовательности.

Любая команда может быть включена в пакетный файл. Кроме того, команды for, goto и if позволяют осуществлять обработку условий в пакетных файлах. Например, if позволяет выполнять команды в зависимости от выполнения заданного условия. Другие команды позволяют управлять вводом и выводом, а также запускать другие пакетные программы. Заменяемый параметр % задает переменные аргументы пакетной программы.

Подставляемые параметры % (Замещаемый параметр)
Изменение расположения подставляемых параметров Shift
Включение комментариев Rem
Вывод на экран сообщения Echo
Установка переменных среды SetLocal
Восстановление переменных среды EndLocal
Вызов с помощью команды Call
Запуск резидентной программы
Выполнение условной обработки If
Использование команд в For
Переход к строке с меткой GoTo
Приостановка программы Pause


% (Замещаемый параметр)

Замещаемые параметры %0 и от %1 до %9 могут быть помещены в любом месте пакетного файла. При запуске пакетного файла %0 замещается именем пакетного файла, а переменные аргументов с %1 по %9 замещаются соответствующими параметрами, введенными в командной строке.

Например, чтобы скопировать содержимое одной папки в другую, в пакетный файл должна быть добавлена следующая инструкция:

xcopy %1\*.* %2

Для запуска файла введите следующее:

mybatch.bat C:\afolder D:\bfolder.

Результат будет таким же, как и при записи в пакетный файл строки xcopy C:\afolder \*.* D:\bfolder.

Параметр % разворачивает аргументы пакетной программы (%0, %1, ..., %9) как описано ниже:

%* в пакетной программе ссылается на все аргументы. Для отдельных переменных дополнительные возможности описаны в следующих таблицах.

Переменная

Описание

%~1

расширение %1, которое удаляет окружающие кавычки (")

%~f1

замена %1 полным путем

%~d1

замена %1 именем диска

%~p1

замена %1 путем

%~n1

замена %1 именем файла

%~x1

замена %1 расширением имени файла

%~s1

замена путем, содержащим только короткие имена.

%~a1

замена %1 атрибутами файла

%~t1

замена %1 временем модификации файла

%~z1

замена %1 размером файла

%~$PATH:1

поиск в каталогах, перечисленных в переменной среды PATH, и замена %1 полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

Модификаторы могут быть объединены для получения более сложных результатов:

Переменная

Описание

%~dp1

замена %1 именем диска и путем

%~nx1

замена %1 именем файла и расширением

%~dp$PATH:1

поиск в каталогах, перечисленных в переменной среды PATH, и замена %1 именем диска и путем к первому найденному файлу.

%~ftza1

замена %1 строкой, аналогичной результату работы программы dir

В приведенных выше примерах %1 и PATH могут быть заменены другими допустимыми значениями. Конструкция %~ должна завершаться допустимым номером аргумента. Модификаторы %~ не могут быть использованы вместе с %*.

В начало

Shift

Изменение положения замещаемых переменных в пакетных файлах.

Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), команда shift поддерживает ключ /n, который указывает команде начинать сдвиг с n-го аргумента, где n — число от нуля до восьми. Например,

SHIFT /2

сдвинет %3 на %2, %4 на %3 и т. д. %0 и %1 останутся неизменными.

В начало

Rem

Добавление комментариев в пакетные программы или файлы конфигураций.

rem [текст]

Параметр текст задает строку, используемую как комментарий.

Примеры

Следующий пример показывает использование в пакетном файле комментариев и вертикальных пробелов:

@echo off
rem Эта пакетная программа форматирует и проверяет новые диски.
rem Она называется CHECKNEW.BAT.
rem
echo Вставьте новый диск в дисковод B.
pause
format b: /v
chkdsk b:

Предположим, необходимо ввести в файл Config.nt комментарий, расшифровывающий формат строки приглашения, определяемой командой prompt. Для этого следует добавить в файл следующие строки:

rem Установка приглашения для вывода текущего каталога
prompt $p$g

Примечания

  • Вывод комментариев с помощью команды echo
    Команда rem не выводит комментарии на экран. Для вывода комментариев на экран необходимо использовать команду echo on в пакетных файлах или в файле Config.nt.
  • Ограничения на комментарии в пакетных файлах
    В тексте комментариев не могут быть использованы символы перенаправления (< и >) или канала (|).
  • Использование команды rem для задания вертикальных пробелов
    Хотя команда rem без текста комментария может быть использована для задания вертикальных пробелов в пакетном файле, также можно использовать и просто пустые строчки. Командный интерпретатор Windows 2000 пропускает пустые строки при обработке пакетных файлов.
В начало

Echo

Вывод на экран сообщения или задание режима вывода на экран сообщений команд.

echo [on | off] [сообщение]

Параметры

  • on | off. Включение или отключения режима отображения на экране информации о работе команд. Для вывода текущего режима используется команда echo без параметров.
  • Сообщение. Задает текст для вывода на экран.

Примеры

Следующий пример представляет собой пакетный файл, выводящий сообщение из трех строк на экран с пустыми строками до и после него:

echo off
echo.
echo Эта пакетная программа
echo форматирует и проверяет
echo новые диски
echo.

Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, следует использовать знак @ перед командой, как показано ниже:

@echo off

Оператор if и команда echo могут быть использованы вместе в пакетной программе:

if exist *.rpt echo Отчет получен.

Примечания

  • Вывод сообщений с помощью команды echo. Команда echo сообщение может оказаться полезной, когда режим отображения работы команд отключен. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echoсообщение после команды echo off в пакетной программе.
  • Приглашение командной строки. После команды echooff, введенной с командной строки, приглашение командной строки исчезнет с экрана. Для его включения следует использовать команду echoon.
  • Отключение вывода строк в пакетных файлах. Знак @ может быть введен перед командой в пакетном файле для отключения вывода строки команды на экран.
  • Вывод пустой строки. Для вывода пустой строки на экран следует использовать команду echo с точкой (echo.). Дополнительные пробелы не допускаются.
  • Вывод символов канала и перенаправления. Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, используйте символ (^) непосредственно перед символом канала или перенаправления (например, ^>, ^< или ^| ). Чтобы ввести сам символ (^), введите два этих символа подряд (^^).
В начало

Setlocal

Начало области локальных установок переменных среды. Локальное окружение используется до тех пор, пока не встретится команда endlocal или не будет достигнут конец пакетного файла.

setlocal режим

Параметры

  • Режим. Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), пакетная команда setlocal допускает необязательный аргумент, который может принимать значения enableextensions или disableextensions. Он разрешает или запрещает расширения командного процессора до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.

    При передаче аргумента команда setlocal также устанавливает значение errorlevel. Значение errorlevel равно нулю (0), если указан один из двух допустимых аргументов и единице (1)— в противном случае.

Примеры

  • Локальное изменение переменных среды в пакетном файле может быть использовано следующим образом:
  • rem ***Начало комментария***
    rem Эта программа запускает приложение superapp в сети,
    rem записывает вывод в файл и загружает этот файл в программу
    rem Блокнот.
    rem ***Конец комментария ***
    @echo off
    setlocal
    path=g:\programs\superapp;%path%
    call superapp>c:\superapp.out
    endlocal
    start notepad c:\superapp.out

  • Проверка расширений командного процессора в пакетных файлах
  • Команда setlocal устанавливает значение errorlevel равным нулю (0), если указан один из двух допустимых аргументов, и единице (1) — в противном случае. Этим можно воспользоваться в пакетных программах для проверки доступности расширений командного процессора, как в приведенном ниже примере:

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Разрешение расширений командного процессора невозможно

    Поскольку cmd не устанавливает значение errorlevel, если расширения командного процессора запрещены или используются более старые версии Cmd.exe, команда verify с недопустимым аргументом устанавливает errorlevel в ненулевое значение. Если команда setlocal, разрешающая расширения, не устанавливает значение errorlevel в единицу, то расширения командного процессора недоступны.

Примечания

Используйте команду setlocal для изменения переменных среды во время исполнения пакетного файла. Изменения среды, выполненные после setlocal, являются локальными для пакетного файла. Предыдущие установки восстанавливаются или после выполнения команды endlocal, или после достижения конца пакетного файла.

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

В начало

Endlocal

Окончание использования локального окружения в пакетной программе, восстановление значений переменных среды, имевшихся до выполнения соответствующей команды setlocal. В конце пакетного файла присутствует неявная команда endlocal. Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), команда endlocal восстанавливает состояния разрешения/запрещения расширений команд, существовавшие до выполнения соответствующей команды setlocal.

Пример

  • Локальное изменение переменных среды в пакетном файле может быть использовано следующим образом:

    @echo off
    rem Эта программа запускает приложение superapp в сети,
    rem записывает вывод в файл и загружает этот файл в программу
    rem Блокнот.
    setlocal
    path=g:\programs\superapp;%path%
    call superapp>c:\superapp.out
    endlocal
    start notepad c:\superapp.out

В начало

Call

Вызов одного пакетного файла из другого без завершения выполнения первого файла. Команда call теперь принимает метки в качестве объекта вызова.

call [диск:][путь] имя_файла [пакетные_параметры]

call :метка [аргументы]

Параметры

  • [диск:][путь] имя_файла. Задает имя и местоположение пакетного файла для запуска. Параметр имя_файла должен иметь расширение .bat или .cmd.
  • пакетные_параметры. Задает параметры командной строки пакетного файла. Ниже в описании параметра аргументы указаны расширения для пакетных_параметров.
  • Метка. Указывает метку, на которую должно быть передано управление пакетной программы. При использовании команды call с этим параметром создается новый контекст пакетного файла, а управление передается инструкции, следующей за указанной меткой. Когда первый раз встречается конец пакетного файла (после перехода на метку), управление возвращается на инструкцию, следующую за инструкцией CALL. При втором достижении конца файла выполнение пакетной программы прекращается. Для получения описания расширения goto :eof, которое позволяет возвращать управление из пакетной программы, выберите goto из списка в ссылке «».

Примеры

  • Для вызова программы Checknew.bat из другого пакетного файла в текст родительского пакетного файла должна быть включена следующая строка:

    call checknew

  • Предположим, что родительская пакетная программа получает два параметра и должна передавать их вызываемому пакетному файлу Checknew.bat. Для этого в родительском пакетном файле может быть использована следующая строка:

    call checknew %1 %2

Примечания

  • Параметры командной строки пакетного файла. Параметры командной строки пакетной программы могут содержать любую информацию, передаваемую пакетной программе, включая ключи, имена файлов, подстановочные параметры, нумеруемые с %1 по %9 и переменные, например, такие, как %baud%.
  • Использование каналов и символов перенаправления. Использование каналов и символов перенаправления с командой call недопустимо.
  • Рекурсивный вызов пакетных файлов. Создание пакетных файлов, которые вызывают сами себя, допускается, но только с заданием условий выхода. В противном случае родительская и дочерняя программы будут вызывать друг друга в бесконечном цикле.
В начало

Запуск резидентной программы из другой программы

  1. Запустите резидентную программу (TSR); сведения о процедуре запуска см. в поставляемой с программой документации.
  2. Запустите другую программу в том же окне путем ввода имени команды в командной строке и нажатия клавиши ENTER.

Примечания

  • Существует способ запуска резидентных программ совместно с другими программами путем создания пакетного файла, который запускает обе программы, и создания ярлыка, указывающего на пакетный файл.
  • Резидентными программами могут быть, например, календари, калькуляторы, программы проверки орфографии и тезаурусы.

  • Чтобы резидентная программа оставалась активной все время использования Windows 2000 Professional, запустите ее в отдельном окне. В данное окно можно будет переключаться в любое время, точно так же, как и в окно любой другой программы.
В начало

If

Обработка условий в пакетных программах. Если условие, заданное в команде if выполняется, будет выполнена команда, следующая за условием. Если условие не выполняется, Windows 2000 игнорирует команду в предложении if и выполняет команду в предложении else, если оно указано.

if [not] errorlevel число команда [else выражение]

if [not] строка1==строка2 команда [else выражение]

if [not] exist имя_файла команда [else выражение]

Если расширения командного процессора разрешены:

if [/i] строка1 оп_сравнения строка2 команда [else выражение]

if cmdextversion число команда [else выражение]

if defined переменная команда [else выражение]

Параметры

  • Not. Задает выполнение команды в случае невыполнения условия.
  • errorlevel число. Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа.
  • Команда. Задает команду, которая будет выполнена, если условие выполняется.
  • строка1==строка2. Условие выполняется, если строки строка1 и строка2 совпадают. Строки могут являться символьными выражениями или пакетными переменными (например, %1). Символьные строки не требуют кавычек.
  • exist имя_файла. Условие выполняется, если существует файл с именем имя_файла.
  • оп_сравнения. один из перечисленных ниже трехбуквенных операторов сравнения:

    Оператор

    Описание

    Оператор

    Описание

    Оператор

    Описание

    EQU

    равно

    LEQ

    меньше или равно

    LSS

    меньше

    NEQ

    не равно

    GTR

    больше

    GEQ

    больше или равно

  • /i. Если указан ключ /i, сравнение строк производится без учета различия строчных и прописных букв. Ключ /i также может быть использован в форме строка1==строка2 команды if. Эти сравнения являются общими. Если и строка1, и строка2 состоят из цифр, строки преобразовываются в числа и выполняется сравнение чисел.
  • cmdextversion число. Условие с cmdextversion действует аналогично errorlevel, но производит сравнение с внутренним номером версии расширения командного процессора Cmd.exe. Первая версия имеет номер 1. Номер будет увеличиваться на единицу при внесении существенных дополнений в расширения команд. Условие с cmdextversion не выполняется, если расширения командного процессора запрещены.
  • defined переменная. Условие с defined действует аналогично exist, но является истинным, когда определена указанная переменная среды. Это условие добавляет три переменные: %errorlevel%, %cmdcmdline% и %cmdextversion%.

    %errorlevel% замещается строковым представлением текущего значения errorlevel, если только уже не существует переменная среды с именем ERRORLEVEL. В этом случае будет использовано ее значение. Приведенный ниже пример иллюстрирует использование errorlevel после запуска программы:

    goto answer%erorlevel%

    :answer0

    echo Код возврата программы равен 0

    :answer1

    echo Код возврата программы равен 1

    Также можно использовать операторы сравнения, перечисленные выше в описании параметра оп_сравнения:

    if %errorlevel% LEQ 1 goto okay

    %cmdcmdline% замещается исходной командной строкой, переданной в Cmd.exe, до ее обработки в Cmd.exe, если только уже не существует переменная среды с именем cmdcmdline. В этом случае будет использовано ее значение.

    %cmdextversion% замещается строковым представлением текущего значения cmdextversion, если только уже не существует переменная среды с именем CMDEXTVERSION. В этом случае будет использовано ее значение.

  • Выражение. В предложении else выражение состоит из команды Windows 2000 и любых параметров этой команды.

Примеры

  • Использование команды if для проверки наличия файла. Если Windows 2000 не удается обнаружить файл Product.dat, появится приведенное ниже сообщение:

    if not exist product.dat echo Не найден файл данных

  • Использование if для выдачи сообщения при возникновении ошибки. В приведенном ниже примере, если при форматировании диска в дисководе A возникнет ошибка, будет выведено сообщение:

    :begin
    @echo off
    format a: /s
    if not errorlevel 1 goto end
    echo Ошибка во время форматирования диска.
    :end
    echo Конец пакетной программы.
    Если ошибки не обнаружены, сообщение об ошибке пропускается.

  • Использование команды if для проверки наличия каталога. Следующий пример проверяет существование каталога. Команда if не может быть использована для проверки существования каталога непосредственно, но в каждом каталоге существует устройство (NUL). Следовательно, существование каталога может быть проверено, как показано ниже:

    if exist c:mydir\nul goto process

  • Использование предложения else. Предложение else должно размещаться в той же строке, что и команда if. Например:

    IF EXIST filename. (
    del filename.
    ) ELSE (
    echo filename. отсутствует.
    )

    Приведенный ниже пример не будет работать, поскольку команда del должна заканчиваться новой строкой:

    IF EXIST filename. del filename. ELSE echo filename. отсутствует

    Приведенный ниже пример не будет работать, поскольку команда else должна находиться в той же строке, что и команда if:

    IF EXIST filename. del filename.
    ELSE echo filename. отсутствует

    Если необходимо разместить всю инструкцию в одной строке, можно использовать следующую правильную форму исходной инструкции:

    IF EXIST filename. (del filename.) ELSE echo filename. отсутствует

Примечания

Когда программа завершается, она возвращает код завершения системе Windows 2000. Параметр errorlevel позволяет использовать значение кода возврата в качестве условия.

В начало

For

Запуск некоторой команды для каждого файла из заданного множества. Команда for может быть использована в пакетной программе или непосредственно из командной строки.

В пакетных файлах используется следующая форма команды for:

for %%переменная in (множество) do команда [параметры_команды]

Для использования for из командной строки используется следующая форма команды:

for %переменная in (множество) do команда [параметры_команды]

Параметры

  • %%переменная или %переменная. Замещаемый параметр. В команде for переменная %%переменная (или %переменная) будет заменяться текстовой строкой из заданного множества, пока команда (с указанными параметрами_команды) не обработает все файлы этого множества. Используйте %%переменная для выполнения команды for в пакетной программе. Используйте %переменная для выполнения команды for из командной строки. Имена переменных вводятся с учетом регистра.
  • (множество). Задает один или более файлов или текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными.
  • Команда. Задает команду, которая будет выполнена для каждого файла из множества.
  • параметры_команды. Задает параметры и ключи для вызываемой команды (если команда использует параметры или ключи).

    Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), поддерживаются дополнительные формы команды for.

Примеры

  • Вывод файлов в каталоге. Предположим, требуется с помощью команды type вывести на экран содержимое всех файлов в текущем каталоге, имеющих расширения .doc или .txt. Для этого служит следующая команда, использующая замещаемую переменную %f:

    for %f in (*.doc *.txt) do type %f

    В этом примере каждый файл с расширением .doc или .txt в текущем каталоге будет подставляться вместо переменной %f, пока не будет выведено содержимое всех файлов. Для использования этой команды в пакетном файле необходимо использовать переменную %%f вместо %f. В противном случае система Windows 2000 проигнорирует переменную и выведет сообщение об ошибке.

  • Перенаправление вывода на принтер. Система Windows 2000 поддерживает ключи, каналы и перенаправления, которые могут быть использованы с некоторыми командами. Например, для перенаправления вывода предыдущего примера на принтер PRN (порт принтера по умолчанию) должна быть использована следующая команда:

    for %f in (*.doc *.txt) do type %f > prn:

  • Разбор файла. Чтобы произвести разбор файла, игнорируя комментарии, можно использовать следующую команду:

    for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

    Она производит разбор каждой строки в файле myfile.txt, игнорируя строки, начинающиеся с точки с запятой, и передает второй и третий элементы из каждой строки в тело цикла. Элементы разделяются запятыми и/или пробелами. Обратите внимание, что тело инструкции FOR использует %i для получения второго элемента, %j для получения третьего элемента и %k для получения оставшихся элементов в строке. Имена файлов, содержащие пробелы, должны быть заключены в двойные кавычки. Чтобы таким образом использовать двойные кавычки, необходимо указать режим usebackq. В противном случае двойные кавычки будут интерпретироваться как указание на разбираемую символьную строку.

    Переменная %i объявлена явно в инструкции FOR, а %j и %k объявлены неявно с помощью режима tokens=. С помощью строки tokens= можно указать до 26 элементов, если это не вызовет попытки объявить переменную с именем, большим буквы «z» или «Z».

    Помните, что имена переменных for учитывают регистр буквы, они являются глобальными и одновременно может быть активно не больше 52 переменных.

  • Разбор строки. Конструкция for /F может быть использована непосредственно для строки. Для этого поместите набор_имен_файлов между скобками в одиночные кавычки. Он будет воспринят как одиночная строка ввода из файла и будет разобран.
  • Разбор вывода. Наконец, можно использовать команду for /F для разбора вывода команды. Для этого набор_имен_файлов между скобками заключается в обратные кавычки. Он будет воспринят как командная строка, которая передается дочернему интерпретатору командной строки Cmd.exe, а результаты работы команды помещаются в памяти и разбираются, как если бы они являлись файлом. Так, в следующем примере:

    for /F "usebackq delims==" %i IN (`set`) DO @echo %i

    перечисляются имена переменных среды в текущем окружении.

Примечания

  • Ключевые слова in и do. In и do не являются параметрами, но они требуются для работы команды for. Если какое-то из слов пропущено, на экран будет выведено сообщение об ошибке.
  • Замещаемые переменные. Для обозначения переменных можно использовать любые символы, кроме цифр 0–9, чтобы не было конфликта с параметрами пакетных программ %0%9. Для простых пакетных программ вполне достаточно односимвольных обозначений, например %%f.

    В сложных пакетных программах могут быть использованы и другие обозначения для переменных.

  • Задание множества файлов. Параметр множество может представлять группу файлов или несколько групп файлов. Для задания групп файлов можно использовать подстановочные знаки (* и ?). Следующие множества файлов являются допустимыми:

    (*.doc)
    (*.doc *.txt *.me)
    (jan*.doc jan*.rpt feb*.doc feb*.rpt)
    (ar??1991.* ap??1991.*)

    Когда используется команда for, первое значение в множестве заменяет %%переменную (или %переменную) и для обработки этого значения выполняется указанная команда. Это продолжается до тех пор, пока не будут обработаны все файлы (или группы файлов), которые соответствуют значению (или значениям) во множестве.

В начало

Goto

Передача управления в пакетной программе на строку с указанной меткой.

Команда goto передает управление в пакетном файле Windows 2000 на строку, помеченную указанной меткой. Когда Windows 2000 находит метку, выполнение продолжается со следующей за ней строки.

goto метка

Параметры

  • Метка. Задает строку в пакетной программе, к которой выполняется переход. Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), команда goto изменяется следующим образом.

    Использование команды goto с меткой перехода :EOF передает управление в конец текущего файла пакетной программы, выходя из файла пакетной программы без определения метки. Когда используется команда goto с меткой :EOF, перед меткой должно быть вставлено двоеточие, например:

  • goto :EOF. Чтобы получить описание расширений команды call, делающих полезной эту возможность, или сведения о разрешений расширений командного процессора, выберите cmd из списка в ссылке «».

Пример

  • Следующая пакетная программа форматирует диск в дисководе A как системный диск. Если форматирование прошло успешно, команда goto вызывает передачу управления на метку "end".

    echo off
    format a: /s
    if not errorlevel 1 goto end
    echo Ошибка во время форматирования диска.
    :end
    echo Конец пакетной программы.

Примечания

  • Допустимые значения для меток. Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. Если используется команда goto с меткой EOF, перед меткой должно быть вставлено двоеточие, например:
  • goto :EOF

    Команда Goto использует первые восемь символов метки

    В команде goto используются только первые восемь символов имени метки. Следовательно, метки ":hithere01" и ":hithere02" эквивалентны метке ":hithere0".

  • Совпадение меток в пакетных программах. Метка, заданная в команде goto, должна соответствовать метке в тексте пакетной программы. Метка в пакетной программе должна начинаться с двоеточия.
  • Если в пакетном файле не содержится заданной метки, программа будет остановлена и на экран будет выведено следующее сообщение:

  • Метка не найдена. Строки пакетной программы, начинающиеся с двоеточия (:) считаются метками. Они не будут обрабатываться как команды. Если строка начинается с двоеточия, Windows 2000 игнорирует все команды в этой строке.
  • Использование goto для обработки условий. Команда goto часто используется с другими командами для обработки условий. Чтобы получить дополнительные сведения об использовании команды goto для обработки условий, выберите if из списка в ссылке «».
В начало

Pause

Приостановка выполнения пакетной программы с выводом сообщения и ожиданием нажатия пользователем любой клавиши.

Примеры

  • Предположим, в пакетной программе требуется сообщить пользователю о необходимости заменить диск в одном из дисководов. Для этого следует создать следующий файл:

    @echo off
    :begin
    copy a:*.*
    echo Пожалуйста, вставьте новый диск в дисковод A
    pause
    goto begin

    В этом примере все файлы с диска A копируются в текущий каталог. После этого на экран выводится сообщение о необходимости заменить диск, затем команда pause приостанавливает работу программы, чтобы пользователь мог заменить диск и нажать любую клавишу для продолжения процесса. Данная пакетная программа работает как бесконечный цикл. Оператор goto BEGIN возвращает управление на начало командного файла. Для завершения работы этой пакетной программы требуется нажать CTRL+C, а затем Y.

Примечания

  • Запрос на продолжение программы. Система Windows 2000 выводит следующее сообщение после команды pause:

    Для продолжения нажмите любую клавишу . . .

  • Разделение пакетных программ на разделы. Если при работе пакетной программы была нажата комбинация CTRL+C для ее остановки, на экран будет выведено следующее сообщение:

    Завершить выполнение пакетного файла [Y(да)/N(нет)]?

    Если была нажата клавиша Y (подтверждение), пакетная программа будет закончена и управление вернется операционной системе. Следовательно, команда pause может быть вставлена перед разделом пакетного файла, который, вероятно, потребуется пропустить. Когда команда pause приостанавливает выполнение пакетной программы, можно нажать CTRL+C и Y для остановки программы.



    Источник: http://www.ttgdt.edu.ru/students/learn/bat_files.html
Категория: OS Windows | Добавил: hl-away (28.11.2007) | Просмотров: 1212 | Рейтинг: Голосов: 0/Рейтинг: 0.0 |
Всего комментариев: 0
Дорогие посетители и пользователи, пожалуйста, оцените публикацию и напишите свой комментарий к ней, тем самым Вы поможете развитию проекта hl-away ! info
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
 

Вход
Логин:
Пароль:
 

Облако тегов

Cтатистика
Интернет карта
Каталог сайтов и ссылок url.moy.su

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня были: