Какая команда используется для приостановки выполнения командных файлов

Обновлено: 19.05.2024

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

Командные файлы с параметрами

Часто приходится выполнять одни и те же последовательности команд, но с разными параметрами команд. В этом случае создают командные файлы с параметрами. Параметры определят те части файла, которые могут изменяться в зависимости от условий запуска bat-файла.

Всего в командном файле можно использовать до девяти параметров, они имеют обозначения %1, %2, …, %9. Можно использовать также параметр %0 – его значение – имя самого командного файла. Если в файле не используются какие-то параметры (не заданы), то их значение считается равным пустой строке.

Рассмотрим следующий командный файл:

copy con %1\%3

В этом файле используются три параметра: %1 – имя создаваемого каталога, %2 – вид приглашения, %3 – имя создаваемого с клавиатуры текстового файла.

Назовем данный командный файл b.bat. тогда при его запуске нужно будет указать три параметра, например:

b.bat first $d$l text.txt

Тогда после выполнения командного файла будет создан каталог first в текущем каталоге, затем изменено приглашение MS DOS и создан файл text.txt в новом каталоге, текст которого нужно будет ввести с клавиатуры.

Иногда в командных файлах бывает недостаточно девяти параметров, для решения этой проблемы используют команду shift:

Эта команда производит переприсвоение значений параметров так, что первому присваивается значение второго, второму – третьего и т.д.

Например, командный файл:

copy %1 second

copy %1 second

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

b.bat 1.txt 2.txt

При выполнении этого файла будет создан каталог second и в него будут скопированы оба файла, первый – первой командой copy, второй – второй.

В процессе выполнения команд bat-файла на экран выводятся эти команды со своими параметрами. Чтобы отключить вывод команд на экран используют команду echo off.

Включение вывода на экран выполняют командой echo on.

Можно отключить вывод не всех строк файла, а только отдельных, для этого перед командой ставят символ «@».

echo Копирование завершено

Безусловный и условный переход в командных файлах

Командный файл может содержать метки и команды перехода к ним. Метка ставится в отдельной строке, она начинается с символа «:», далее могут следовать буквы или цифры.

Переход к метке осуществляется командой

после выполнения команды goto, происходит переход к строке, следующей за указанной в команде меткой. Если при выполнении команды goto соответствующая метка в файле не найдена, то выполнение файла прекращается.

copy 1.txt newdir

copy 2.txt newdir

В этом случае после создания нового каталога newdir, в него будет скопирован файл 2.txt, а команда copy 1.txt newdir будет пропущена.

Описанный ранее переход называется безусловным, так как не зависит ни от каких условий. Если необходимо выполнить какие-то команды в bat-файле в зависимости от выполнения (или невыполнения) какого либо условия, применяют условный переход.

if условие команда

Команда выполнится в том случае, если условие истинно. В противном случае происходит переход к следующей за if командой.

Возможны следующие виды условий:

строка1 == строка2 – условие истинно, если строки полностью совпадают. Если вместо одной из строк используются параметры %0-%9, то при сравнении вместо них подставляются соответствующие значения параметров.

exist имя_файла – условие истинно, если указанный файл существует, причем вместо имени файла также могут использоваться параметры.

not условие – отрицание условия.

if -%1== - goto n_p

if not exist %1 goto n_e

copy %1 first

echo Файл %1 скопирован

echo Параметр отсутствует

echo Файл не существует

В этом примере команда if -%1== - goto n_p производит проверку наличия параметра, и если параметр отсутствует, то осуществляется переход к метке n_p. Символ «-» позволяет избежать возникновения синтаксической ошибки в случае отсутствия параметра. Команда if not exist %1 goto n_e проверяет существование файла, указанного в параметре. Если файл не существует, то осуществляется переход к метке n_e. И только если оба условия окажутся ложными произойдет копирование файла заданного параметром.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Последовательность автоматически выполняемых операций обработки в операционной системе получила название пакетной обработки (batch processing). Инструментальным средством пакетной обработки является командный (пакетный) файл.

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

Командный файл, работающий в операционной среде MS DOS, имеет тип .ВАТ (от англ. Batch - пачка). Макрос имеет тип, который определяет его принадлежность к определенной прикладной среде.

Командный файл создается как текстовый файл в любом текстовом редакторе. Например, в среде MS DOS можно воспользоваться редактором EDITOR. Сам текст представляет собой последовательность конструкций команд операционной системы, имен файлов запуска прикладных систем, различных сервисных утилит.

Для запуска командного файла достаточно в командной строке задать только его имя без указания типа и нажать клавишу .

Прерывание работы командного файла осуществляется нажатием клавиш или
.

    Командный файл состоит из команд операционной системы MS DOS, имен файлов запуска и сервисных программных средств.
    Каждая команда занимает отдельную строку.
    После окончания формирования конструкции каждой команды надо нажать клавишу .
    Имя командного файла - уникальное в пределах того каталога, где он находится. Тип - всегда .ВАТ.
    В конструкции команд могут быть как строчные, так и прописные буквы.

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

    проверить на вирус диск А:;
    создать на диске D: два временных рабочих каталога, с которыми вы будете работать в текущем сеансе, - DOCUMENT и TEXT;
    скопировать с диска А: в каталог TEXT все файлы типа .ТХТ;
    скопировать с диска А: в каталог DOCUMENT все файлы типа .DOC;
    запустить с диска С: текстовый редактор ЛЕКСИКОН, введя имя загрузочного модуля LEX из каталога LEXICON.

Заданные действия следует записать в любом текстовом редакторе в командный файл, например под именем КОМ1 на диск D. Учитывая, что мы сейчас занимаемся изучением операционной системы MS DOS, рассмотрим, как это сделать во встроенном в нее редакторе EDITOR:

    для перехода в среду текстового редактора введите в командной строке команду EDIT;
    для очистки экрана нажмите клавишу ;
    для активизации меню текстового редактора нажмите клавишу ;
    для перехода в режим создания командного (текстового) файла введите команду FILE, New;
    на рабочем поле текстового редактора введите следующую последовательность команд:

Команды по управлению командными файлами

ECHO ON – все команды будут выводиться на экран вместе с приглашением DOS.

ECHO OFF – команды командного файла на экран не выводятся, хотя сама команда будет выведена.

Можно избежать вывод любой строки командного, если поставить знак @.

Для введения в командный файл комментариев, показывает заголовок файла или их действия.

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

Используется в двух случаях:

    Сохранение на экране полезной информации
    Меры безопасности

ECHO / REM / PAUSE _ просмотрим файл

Вызывает файл в пошаговом режиме, что удобно для его отладки. Текст каждой команды будет выводиться на экран.

GOTO _ метка

Метка – любое слово длинна которого не ограниченна (DOS учитывает только первые 8 символов).

Метка начинается со знака двоиточее. Строка с меткой не вызывает ни каких действий, сама метка на экран не выводится. Выполняется команда, следующая за меткой.

Формальные и фактические параметры (%0, %1, …, %9)

Чтобы сделать командный файл более универсальным используется механизм формальных и фактических параметров.

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

Формальный параметр указывается в самом командном файле (можно задавать до 10 формальных параметров).

%0 - Имя самого командного файла

Командный файл для пересылки файла с диска А: на диск С:

COPY _ A:\%1 _ C:

Циклическое выполнение команд

FOR - организует цикл, который выполняет другие команды DOS несколько раз с различными параметрами.

FOR_%% _ N_( )_DO_ _ %%

Такая команда сообщает DOS "для каждого элемента множества выполнить команду.

Переменная - любой символ, за исключением 0…9

Множество - одно или несколько имен файлов, разделенных пробелами, а также используются формальные параметры.

Команда - любая команда DOS.

FOR _ %%А _ IN _ (%1 _ *.txt) _ DO _ TYPE _ %%A

Проверка условий в командном файле

IF [NOT] - условная команда.

Позволяет проверить некоторое условие и выполнить или не выполнить команду в зависимости от результата проверки.

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

Условием может быть:

    Существование файла на диске

IF _ EXIST _ имя файла _ команда

IF _ ERRORLEVEL _ N _ команда

В качестве одной из цепочек может использоваться формальный параметр. Условие считается истинным, если первая и вторая цепочка полностью совпадают, в этом случае выполняется команда (обычно GOTO).

Создание диалоговых командных файлов

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

/N - не выводить список символов и знак вопроса

/S - при вводе символов различать их на строчные и прописные

/T - если указан, то в случае когда пользователь по истечению "Числа секунд" не нажал клавишу то принимается ответ "Символ".

Увеличение числа фактических параметров

SHIFT - применяется, когда надо разработать командный файл с циклической структурой.

Например, в командном файле имеется два формальных параметра %1 %2 , а при вызове командного файла указывается четыре фактических параметра А, В, С, D; тогда при первом выполнении задания, до команды SHIFT , %1=А, а %2=В. После команды SHIFT %1=В, а %2=С и т.д.

Я нахожусь в процессе запуска пакетного сценария, который занимает очень много времени и чей вывод быстро увеличивается с нечитаемой скоростью. Существует ли сочетание клавиш, которое позволяет приостановить консоль CMD, на которой она в данный момент находится, чтобы остановить и прочитать вывод, а затем снова запустить ее с того же места?

введите описание изображения здесь

Вы можете захватить поле прокрутки и переместить его вверх, это эффективно приостановит прокрутку. Затем вы можете нажать клавишу со стрелкой вниз, чтобы перейти к нижней части буфера. Разве это не целевое назначение клавиши «Scroll Lock»?

Я не видел этого в других ответах.

Я считаю, что последовательные управляющие последовательности «Ctrl-S» XOFF и «Ctrl-Q» XON являются ключевыми последовательностями, предназначенными для решения этой проблемы.

Я изменил это, чтобы лучше ответить по нескольким причинам. По результатам исследований клавиша Pause / Break сама по себе останавливает вывод, но не выполнение, о чем другой ответ не упоминает. Ctrl + Pause / Break должен использоваться, чтобы остановить выполнение, и это немного более громоздко для ввода на большинстве клавиатур, чем Ctrl + S и Ctrl + Q (это можно сделать только левой рукой). Тем не менее, Ctrl + Pause / Break имеет то преимущество, что вам не нужно запоминать две дополнительные комбинации клавиш, поэтому оба ответа хороши, я просто хотел бы, чтобы этот получил те положительные отзывы, которых он заслуживает. Обратите внимание, что хотя этот ответ является источником вопроса для Unix / Linux, сочетания клавиш отлично работают на CMD.exe, по крайней мере на моей ОС Windows 7. @ Хашим, спасибо, что поделились своими исследованиями. Поскольку вы специально спрашивали, как приостановить вывод , я не рассматривал (и не проверял) такую ​​возможность, но о ней приятно узнать. (Upvoted)

Ваша клавиатура содержит Pause/Break ключ? Это хорошо послужило бы для этого. Вот как это выглядит или, по крайней мере, используется для:

Pause Break Key из Википедии

В качестве интересного бонуса этот ключ также можно использовать во время процедуры POST (Power On Self Test, которая запускается при включении компьютера) для чтения выходных данных из BIOS.

Если у вас нет этой клавиши, комбинация Control + NumLock должна работать точно так же, и, согласно Википедии , существуют другие варианты в зависимости от вашего производителя .

Чтобы возобновить выполнение, нажмите Enter .

Обратите внимание, что на некоторых клавиатурах у вас может быть специальная клавиша блокировки прокрутки (обычно отмеченная ScrLk ), которая может служить аналогичной цели. @BurhanKhalid Ну, я прочитал по этой ссылке, что она приостанавливает вывод , но не выполнение , и этот эффект, похоже, не относится к консоли MS Windows . но, тем не менее, интересно знать С пингом, кажется, остановить выполнение. это очень странно, поскольку ping - это отдельный исполняемый файл. Кроме того, при приостановке процесс ping.exe остается в проводнике процессов до тех пор, пока ему не будет разрешено завершить работу. в то время как пауза, все его потоки входят Wait:Executive , и, кажется, не пульсируют периодически. Захватывающий. Другой трюк, который мне нравится использовать, - пометить текст мышью (у меня всегда включен режим быстрого редактирования). Это останавливает вывод (и, следовательно, выполнение, так как программа, которая пишет в stdout, ожидает, пока не будет записан поток).

Вы можете использовать команду «больше». Хотя это не совсем то, что вы ищете, оно ограничит вывод экрана на страницу.

Добавление еще одного полезного способа для оболочек Linux . (Но, может быть, хорошо в окнах, попробуйте!)

Чтобы запустить его снова в своем предыдущем состоянии, как если бы оно было приостановлено:

Тип fg

Или для многократного использования: program_name_previously_ctrl + z_stopped ` fg

Здесь нужно добавить еще пару методов, если мы тщательно проработаем:

1) В дополнение к кнопке Pause / Break вы можете дублировать ее функциональность, используя «CTRL + C».

Это заставит сценарий cmd приостановить работу и спросить вас, хотите ли вы прекратить его. Когда вы закончите поиск, вы можете выбрать «НЕТ» (или, возможно, «да», если вам это подходит), и он продолжится (или выйдите, если вы выбрали «Да»).

2) Вы также можете сделать паузу с помощью мыши, щелкнув курсор мыши в окне, чтобы выбрать текст в терминале CMD.

Возможно, вы замечали этот приостановленный вывод в прошлом и думали, что вывод будет задержан, однако, когда сценарии выполняются в интерактивных экземплярах cmd, вы фактически приостанавливаете выполнение кода (так же, как с «Pause / Break» и «CTRL». + С "Методы".

Однако, как только окно потеряет фокус, или вы нажмете, чтобы отменить приостановку, выполнение кода продолжится, и у вас не будет возможности завершить код таким способом.

Вау, ребята, вы молоды. Никогда не использовал последовательные терминалы? Попробуйте Ctrl-s / Ctrl-Q Программное обеспечение эмулятора терминала обычно реализует поддержку XOFF / XON в качестве базовой функции. Обычно это системная консоль на современных машинах Unix и Linux, а также эмуляторы графического интерфейса, такие как xterm и консоль Win32.

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

Windows для чайников: основы работы с командами bat-файлов

В процессе работы с операционной системой Windows может возникать необходимость зацикливания DOS-команд, создания многоуровневой цикличности повторяющихся действий или программ, автоматизирования рабочего процесса с утилитами и файлами в ручном или без участия юзера.

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

Основным преимуществом bat-файлов является отсутствие необходимости прописывать в них какой-либо программный код, благодаря чему работать с ними может даже начинающий юзер. Все что необходимо для создания такого файла — это задать исходную информацию, которая будет исполняться DOS-процессами. Помимо этого, этот процесс реализовывается одинаково на всех версиях Windows. В качестве примера можно привести системный файл autoexec.bat, в котором находится список всех служб и приложений, которые должны быть запущены при старте Windows.

BAT-файлы: основные возможности

В зависимости от реализовываемых функций, bat-файлы подразделяются на несколько типов:

Исполнение bat-файлов

Запустить исполнение командных файлов можно несколькими методами. Одним из наиболее простых является командная строка, в которой необходимо просто прописать название bat-файла. При этом допускается использование и дополнительных параметров. Как только все файлы указаны, их реализация будет происходить в автоматической режиме, в той последовательности, которую указал пользователь.

Если bar-файлы хранятся в различных директориях, то помимо имени потребуется указание полного пути к нему. При этом указывать расширение необязательно. Давайте предположим, что необходимо запустить выполнение bat-файла с именем priroda.bat, а также дополнительными параметрами resize.doc и /p, расположенного по адресу с:\photogalery\otpusk. Таким образом, для запуска файла достаточно прописать в командной строке команду с:\home\photogalery\otpusk resize.doc /p и начнется автоматическое выполнение процесса.

Прерывание выполнения командного файла

Запуск другого bat-файла

Любой командный файл может выступать в качестве рабочего, который активирует выполнение других bat-файлов. Для этого необходимо прописать в теле такого файла команду CALL, после которой указывается название файла и дополнительные параметры, при необходимости, который необходимо исполнить. Если этот параметр не указать, то ничего не произойдет, поскольку в этом случае происходит передача прав другому файлу.
При задании дополнительных параметров используется символ «%» с указанием переменной от одного до девяти. После завершения выполнения всех команд, начнется исполнение начального скрипта с новой строки.

Последовательное исполнение

Иногда возникает необходимость последовательного исполнения команд, прописанных в теле командного файла. Чаще всего это происходит на этапе отладки и тестирования работоспособности скриптов. Для настройки пошагового выполнения предназначена команда COMMAND, которая прописывается в начале каждой строки. После этой команды указываются переменные /y/c, название скрипта и дополнительные параметры, помещенные в квадратные скобки.
При начале исполнения каждой новой команды со стороны пользователя потребуется подтверждение при помощи клавиши «Enter» или «Escape».

Управление выводом команд на дисплей

При запуске исполнения командного файла происходит оповещение юзера при помощи окна уведомления, после чего начинается непосредственное его выполнение. Однако эти оповещения не всегда являются уместными, поскольку bat-файлы большого объема могут отвлекать юзера от другой работы за компьютером длинными оповещениями. А вот при отладке они, наоборот, окажутся весьма кстати. Для управления функцией вывода команд на дисплей предназначена команда ECHO, а при помощи параметров ON и OFF можно активировать и деактивировать отображение уведомлений.

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

Если команды ECHO прописана неправильно и после основных параметров в тексте команды присутствуют другие символы, то она работать не будет и вместе с текстом основного уведомления на дисплей будет выводиться и сама команда. Стоит отметить, что при помощи командных файлов можно настроить даже звуковое оповещение, которое будет подаваться при помощи спикера. Для этого, после основного символа необходимо поставить цифру 7. Если возникла необходимость повышения качества читабельности текста уведомления необходимо после ECHO поставить точку, не используя пробел.

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

Использование комментариев

Для удобства работы с командными файлами большого объема, содержащих множество команд, реализована возможность использования комментариев. Для этого необходимо поставить в начале строки параметр REM, после которого прописывается сам комментарий. Все что находится после этого параметра полностью игнорируется операционной системой.

Задержка исполнения командного файла

Последовательное исполнение пакета файлов

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

Стоит отметить, что при использовании команды FOR необходимо учитывать тот факт, что все DOS-команды и программы обладают ограниченной длиной. Если возникнет необходимость использования длинных названий, то перед этой командой нужно поставить параметр LFNFOR ON, который активирует длинные имена. Для деактивации этого режима потребуется параметр ON заменить на OFF.

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

Переходы в командных файлах

Чтобы систематизировать процесс исполнения команд батниках используются метки и команды перехода между ними. В качестве меток используются строки командного файла, в начале которых ставится двоеточие, после чего задается имя, которое может содержать любой набор символов. Для отделения имени от команды используется пробел. Помимо этого, для каждой метки юзер может создавать комментарий, что существенно упрощает работу с объемными файлами.
Для настройки перехода между метками предназначена команда GOTO, после которой через пробел указывается название одной из меток. Если система не смогла найти указанную метку или заданный параметр, то действие перехода на этой команде завершается.

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

Какие команды используются в bat-файлах?

Чтобы получить список всех команд, использование которых допускается в командных файлах, необходимо запустить командную строку, прописать HELP и нажать клавишу Enter. После этого, на дисплей монитора будет выведен список всех команд с небольшим пояснением каждой из них. Если возникнет необходимость получить более подробное описание, то нужно просто ввести еще раз HELP с названием интересующей команды.

Работа командных файлов при резервном копировании данных

BAT-файлы очень сильно помогают в повседневной работе системных администраторов, которые используют их при выполнении самых различных задач, наиболее важной, среди которых является резервное копирование данных. Чтобы автоматизировать этот процесс в крупной корпоративной сети нужно в батник поместить команду COPY. Помимо этого, можно настроить расписание резервного копирования наиболее важных файлов с сохранением в указанную директорию просто создав в планировщике Windows запуск этого файла по определенным дням недели или датам.

Запись опубликована 05.04.2016 автором katrinas11 в рубрике Моя жизнь. Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:

Читайте также: