Для чего служит команда файл

Обновлено: 05.07.2024

при использовании >> и тому подобного (т.е. 2> , 2>&1 и т. д.).

Когда и почему вы бы поменяли порядок? Означает ли это, что весь стандартный stdout перенаправлен, а не только из command ? У кого-нибудь есть конкретные примеры?

Я имел Google и мог найти любые непосредственные примеры.

2 ответа 2

Такое перенаправление влияет на простую команду. От man 1 bash :

"Следующими операторами перенаправления" являются [n]<word , [n]>word , [n]>>word и т.д.

Это означает, что следующие команды эквивалентны:

Вопрос помечен как bash, и я цитирую man 1 bash но приведенные выше команды также работают и в sh .

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

Я не припоминаю ситуацию, когда я хотел иметь перенаправление в середине. Однако существует случай использования, когда перенаправление ввода в начале довольно полезно. Рассмотрим этот код:

Представьте, что труба очень длинная. Он размещен на Super User и решает некоторые проблемы. Вы можете вставить его в консоль и запустить. Что если вы захотите добавить его к какой-либо команде или каналу? Например, вы хотите получить:

Вам необходимо удалить file из скопированной команды. По этой причине некоторые пользователи предпочитают публиковать такие команды:

В других обстоятельствах это было бы совершенно бесполезным использованием cat . Некоторые скажут, что так и есть, независимо от обстоятельств. Как насчет:

Нет cat и удобной формы!

объяснение

Ключом к пониманию того, как работают операторы перенаправления ввода / вывода, является помнить, что вы работаете в оболочке, которая постоянно печатает в STDOUT или STDERR(в основном) с каждой вводимой вами командой.

>> Не имеет значения, как происходит вывод, но только если он произойдет, он может добавить его к файлу, который непосредственно следует за ним. Также важно помнить, что операторы перенаправления не собираются вмешиваться в ваши команды. Вы можете проверить все дальше, набрав echo hello >> newfile this is my output и когда вы будете cat newfile вы увидите: «привет, это мой вывод».

В этом конкретном случае порядок команд в сочетании с оператором добавления (>>) не обязательно важен для наблюдения. Вместо этого следите за результатами ваших команд, о чем не говорится в комментарии Камиля выше ^. Пока что-то, что не является ошибкой, печатается в вашей оболочке, >> может делать свое дело.

Задача команды echo - печатать на стандартный вывод (STDOUT). Попробуйте сами, и вы увидите новую строку с вашим выводом. Если вы включите >> file в микс, у вас будет все, что появляется на этой новой строке, добавлено в этот файл. Порядок это важно, однако. Файл для добавления должен непосредственно следовать за оператором.

Примечание к примерам

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

Если вы хотите еще глубже понять это, вы можете начать изучать файловые дескрипторы(STDIN, STDOUT, STDERR) и как работают системные вызовы Unix. Все это можно увидеть как окно в системное программирование Unix и как работает Unix/Linux на более глубоком уровне.

Часто многим приходилось слышать о командном файле. С его помощью многие «продвинутые» пользователи выполняют всевозможные автоматические задачи на компьютере. Что же такое командный файл и где его взять?


Командный файл - это некий файл последовательных команд, которые Windows будет выполнять при его запуске. Командный файл, как правило, имеет расширение *.bat. Рассмотрим возможности командных файлов на простом примере – создадим командный файл, который будет очищать папку Temp от временных файлов в корне диска C.

Папка Temp

Все команды, которые можно использовать в командном файле должны соответствовать синтаксису командной строки. Справка Windows содержит подробное описание синтаксиса всех этих команд. Создать BAT файл можно с помощью обычного текстового редактора, такого как Блокнот. Открыв блокнот в нём нужно написать такую строку:

Запись команды в блокнот

После чего следует сохранить этот файл в любом удобном месте и изменить расширение с txt на bat.

Изменение расширения txt на bat

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

Ключ /S необходим для удаления файлов в подпапках, а ключ /Q – для отключения вывода подтверждения на удаление файлов.

Запуская простой командный файл, можно легко очистить временную папку от накопившихся файлов.

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


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

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

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

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

Как создать пакетный файл в Windows 10

Процесс написания пакетного файла (сценария или пакетного сценария) не сложен. Вам нужен только текстовый редактор (например, Блокнот) и некоторые знания по использованию командной строки.

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

Создание простого пакетного файла

Чтобы создать простой пакетный файл в Windows 10, выполните следующие действия:

  1. Откройте Блокнот или другой текстовый редактор.
  2. Введите следующие строки, чтобы создать пакетный файл: @ECHO OFF ECHO Поздравляю! Ваш первый пакетный файл успешно выполнен. PAUSE

Простейший код пакетного командного файла

Приведенный выше скрипт выводит фразу «Поздравляем! Ваш первый пакетный файл успешно выполнен» на экране терминала.

Результат выполнения команд из пакетного файла

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

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

Создание расширенного пакетного файла

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

  1. Откройте Блокнот или другой текстовый редактор.
  2. Введите следующие строки, чтобы создать более сложный пакетный файл:
  3. @ECHO OFF :: This batch file reveals OS, hardware, and networking configuration. TITLE My System Info ECHO Please wait. Checking system information. :: Section 1: OS information. ECHO ============================ ECHO OS INFO ECHO ============================ systeminfo | findstr /c:"OS Name" systeminfo | findstr /c:"OS Version" systeminfo | findstr /c:"System Type" :: Section 2: Hardware information. ECHO ============================ ECHO HARDWARE INFO ECHO ============================ systeminfo | findstr /c:"Total Physical Memory" wmic cpu get name :: Section 3: Networking information. ECHO ============================ ECHO NETWORK INFO ECHO ============================ ipconfig | findstr IPv4 ipconfig | findstr IPv6 PAUSE

Пакетный файл с набором команд

Приведенный выше пакетный скрипт запускает ряд команд для запроса различной системной информации, сгруппированной в три разные категории, включая «Информацию об ОС», «Информацию об оборудовании» и «Информацию о сети».

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

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

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

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

Файл командного доступа к сетевой папке

Команда «pause» не требуется, она была добавлена в этом примере, чтобы сделать снимок экрана. Если вы получаете доступ к файлам с другого компьютера, который использует определенное имя пользователя и пароль, не забудьте использовать опцию /user: с необходимыми учетными данными.

Приведенная выше команда является известной командой, которая отображает сетевую папку как диск внутри проводника, используя букву «Z».

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

Как запустить командный файл в Windows 10

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

Запуск пакетного файла по требованию

Если вам нужно запустить скрипт по требованию, вы можете использовать проводник или командную строку.

Проводник

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

  1. Откройте проводник.
  2. Найдите папку со сценарием.
  3. Дважды щелкните командный файл, чтобы запустить его.
  4. (Необязательно) Если вы выполняете команду, требующую прав администратора, вам нужно запустить сценарий от имени администратора, щелкнув правой кнопкой мыши пакетный файл и выбрав опцию Запуск от имени администратора.

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

Командная строка

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

Например, следующая команда запускает пакетный файл, расположенный в пользовательской папке «batch» внутри папки «Downloads»:

После того, как вы выполните эти шаги, выходные данные будут отображаться на экране, даже если скрипт содержит команду «PAUSE».

Запуск пакетного файла по расписанию

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

  1. Откройте Пуск.
  2. Введите планировщик заданий и щелкните по верхнему результату, чтобы открыть приложение.
  3. Щелкните правой кнопкой мыши ветку «Библиотека планировщика заданий» и выберите опцию Создать папку. .
  4. Введите имя для папки – например, MyScripts.

Необязательно создавать папку, но рекомендуется организовать ваши задачи.

Создание простой задачи для запуска скрипта

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

Настройка сроков выполнения запланированной задачи

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

Запуск пакетных файлов при запуске

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

Чтобы запустить скрипт при запуске, используйте следующие простые шаги:

  1. Откройте проводник.
  2. Найдите папку с командным файлом.
  3. Щелкните правой кнопкой мыши файл и выберите параметр Копировать.
  4. Используйте комбинацию Win + R , чтобы открыть окно «Выполнить»
  5. Введите следующую команду: shell:startup
  6. Нажмите Вставить на вкладке «Главная» в папке «Автозагрузка». (Или вы можете нажать кнопку «Вставить ярлык», чтобы создать ярлык для командного файла.)

Вставка пакетного файла для автозагрузки

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

Мы ориентируем это руководство на Windows 10, но возможность использовать пакетные файлы существует давно, а это означает, что вы можете обратиться к этим инструкциям, если вы всё ещё используете более старую версию, включая Windows 8.1 или Windows 7.

Последовательность автоматически выполняемых операций обработки в операционной системе получила название пакетной обработки (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=С и т.д.

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