Входные параметры для командного файла
Существует возможность передать командному файлу параметры командной строки и использовать их значения в операторах самого командного файла.
BAT-файл < параметр1 > , < параметр2 >, . < параметрN >
В самом командном файле первый параметр будет доступен как переменная %1, второй — %2 и т.п. Имя самого командного файла доступно как переменная %0. Для примера создадим командный файл, задачей которого будет выдача на экран значений введенных параметров. Обычно для вывода текста используется команда
Однако если текст заменить на %1, — то будет выдан первый параметр, на %2 — второй и т.д.
Создаем файл parm.bat следующего содержания:
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3
и запускаем его на выполнение следующей командой:
parm.bat FIRST second “two words”
после его выполнения вы поймете, как это работает и что параметры с пробелами, нужно заключать в двойные кавычки. Для того, чтобы обрабатываемые командным процессором строки не выдавались на экран, можно воспользоваться командой ECHO OFF, поместив ее в первую строку командного файла. Для того, чтобы строка командного файла игнорировалась командным процессором поместите в ее начало REM< пробел > . Таким образом можно помещать комментарии, зачастую нелишние в больших командных файлах:
rem ECHO OFF выключает режим вывода содержания строк командного файла на экран
REM будет выводиться только результат их выполнения.
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3
Попробуйте ECHO OFF заменить на @ECHO OFF – результат говорит сам за себя. Строка, которая выключает режим вывода, перестала выдаваться на экран.
Переходы и метки
В командных файлах можно использовать команды условного перехода, меняющие логику их работы в зависимости от выполнения определенных условий. Для иллюстрации приемов использования условных переходов создадим командный файл, целью которого будет присвоение заранее определенной буквы диска для съемных носителей, в качестве которых будут использоваться флэш-диски. Условия таковы – есть 2 флэш-диска, один из которых должен быть виден в проводнике как диск X: а второй – как диск Y: независимо от того, в какой порт USB они подключены. Будем считать, что реальные диски могут быть подключены как F: или G: Опознавание дисков будем выполнять по наличию файла с определенным именем (лучше такой файл сделать скрытым в корневом каталоге и назвать его как-нибудь необычно):
Flashd1.let – на первом диске
Flashd2.let – на втором
Т.е. задача командного файла заключается в том, чтобы проверить наличие на сменных дисках F: и G: файлов Flashd1.let или Flashd2.let и, в зависимости от того, какой из них присутствует, присвоить диску букву X: или Y:
Для поиска файла на диске используем команду IF EXIST:
If exist имя_файла команда
В качестве команды проще всего воспользоваться SUBST, сопоставляющей имя диска и каталог.
SUBST X: C:\ — оздает виртуальный диск X:, содержимым которого будет корневой каталог диска C:
Создаем командный файл setXY.bat со следующими строками:
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\
После выполнения такого файла у вас появятся диски X: и Y: Но если такой файл выполнить повторно, команда SUBST выдаст сообщение об ошибке – ведь диски X: и Y: уже существуют.
Желательно обойти выполнение SUBST, если виртуальные диски X: и Y: уже созданы, (или удалять их, используя SUBST с параметром –d перед подключением ). Модифицируем командный файл с использованием GOTO — передачи управления строке пакетного файла по метке.
Метка должна находиться в отдельной строке и начинаться с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало сообщений об ошибке:
REM если не существует X: — то перейдем на метку SETX
IF NOT EXIST X:\ GOTO SETX
REM если существует X: — перейдем на проверку наличия Y:
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
REM если Y: существует – завершим командный файл.
IF EXIST Y:\ GOTO EXIT
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\
REM выход из командного файла
Сообщение об ошибке SUBST исчезло. Признаки ошибок при выполнении команд можно отслеживать и в самом командном файле, анализируя переменную ERRORLEVEL, значение которой формируется при выполнении большинства программ. ERRORLEVEL равно 0, если программа завершилась без ошибок и 1 – при возникновении ошибки. Могут быть и другие значения, если они предусмотрены в выполняемой программе.
В качестве команды в строке командного файла можно использовать также командный файл. Причем, для передачи с возвратом обратно к точке выполнения вызывающего командного файла используется команда CALL . Создадим командный файл test.bat, следующего содержания:
ECHO Вызов 1.bat
И файл 1.bat, содержащий команду PAUSE, приостанавливающую выполнение командного файла до нажатия любой клавиши.
При выполнении test.bat будет выдано на экран сообщение
и управление получит 1.bat с командой pause. После начатия клавиши на клавиатуре управление получит командная строка “ECHO Возврат.” и на экран будет выдано
Если же в test.bat убрать CALL , то возврат из файла 1.bat выполняться не будет. Кстати, используя передачу управления командному файлу, можно организовать его зацикливание. Попробуйте добавить в конец файла test.bat строку:
Выйти из зацикливания командного файла можно по нажатию комбинации CTRL-Break. Возможно использование команды CALL для вызова процедуры внутри командного файла. В этом случае в качестве аргумента используется не имя внешнего файла, а метка: . call :proc1 . :proc1 . exit .
Name already in use
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Все на самом деле проще, чем кажется.
Вывод текста на экран
It’s my the first script on BATCH!
С первого взгляда стало понятно, чтобы вывести текст на экран нужно воспользоваться командой echo .
Но что значит первая строчка @echo off ? Первая строчка отвечает за отключения «эхо», то есть, другими словами она отключает вывод командной строки. Представим, что вы ее не записали, и вот что у вас получится:
echo It’s my the first script on BATCH!
It’s my the first script on BATCH!
У вас отобразятся команды, которые вы записали в ваш скрипт, а потом их результат.
Комментарии, кодировка и перенос строки
Комментарии в коде чаще всего создаются, для описания какой-либо строчки или какого-либо блока кода.
Имеется несколько способов оставить комментарий:
Разницы не будет как вы это сделаете, комментарий не читается при исполнении скрипта — он только для вас.
Допустим вы захотели вывести текст в консоль, который написан кириллицей, но при выводе возникает проблема? Что это за символы?!
Для этого следует указать интернациональную кодировку UTF-8:
Если у вас в коде имеется длинная строка, которую вы хотите перенести на другую строчку, чтобы визуально это смотрелось красиво и удобно, можно воспользоваться символом ^ :
А что, если вы хотите вывести текст выше также, как это было и в коде? Эти ^ ёлочки не способны такого сделать, и тут можно сделать такую штуку:
В BATCH переменные бывают глобальные и локальные , изначально они все глобальные, а также их несколько видов.
Глобальные переменные можно использовать повсюду, в скрипте, другом bat-файле , но только в текущей сессии. Что такое текущая сессия? Простыми словами это открытая консоль в данный момент. Давайте разбираться, но для начала посмотрим, как можно создать самую простую переменную.
Любая переменная создается с ключевого слова set , дальше можно указать тип переменной (необязательно), после обозвать её. Значения переменной указываются после символа = без пробелов. Обычная переменная может содержать только строку (string).
Как вы наверное догадались, чтобы получить значение переменной, нужно обернуть название переменной в символы % .
Другой вид переменной, числовой.
С такой переменной можно проводить математические операции:
Также можно создать две разных переменных и сложить их воедино.
Давайте расмотрим еще один вид переменной.
script запускаем файл
Enter some text: Don’t worry, smile!
Такая переменная может принимать в себя данные, которые вы передадите.
Имеется еще один интересный вид переменной, она называется переменной аргумента.
Обозначается она таким образом: %1 %2 %3.

Когда мы запускаем наш bat-файл из консоли, мы можем передать любой аргумент после его названия: script Something .
script — название нашего файла, Something — наш желаемый аргумент. Если мы попытаемся передать несколько слов (аргументов) через пробел, то у нас засчитает только первое слово. То есть каждое новое слово по сути является новым аргументом.
script Everything will be fine.
Этого можно избежать следующими способами:
- Указать больше переменных.
- Обернуть текст в кавычки » «
- Указать символ *
Я хочу передать вот этот текст: Everything will be fine. . Здесь 4 слова (необязательно слова, после каждого нового пробела получается новый аргумент)
script Everything will be fine.
В этом способе я оберну текст в кавычки » «
script «Everything will be fine. «
script Everything will be fine.
Также на основе таких переменных можно сделать небольшой калькулятор, для этого эту переменную нужно как-бы преобразовать в числовой тип:

Локальные переменные задаются в блоке от setLocal до endLocal . Такими переменными нельзя воспользоваться за пределами блока, и также они недоступны в сессии, как глобальные.
Попробуйте запустить этот скрипт, а после прописать в консоли echo %global_variable% , получилось?
Теперь попробуйте echo %local_variable% . Мм.. нет?
Также глобальными переменными можно пользоваться в других bat-файлах . Попробуйте создать другой файлик и к примеру вывести глобальную переменную на экран.
В принципе все просто.
Практика:
- Попробуйте написать скрипт, который будет принимать ваше имя и возраст, после выводить его на экран.
- Попробуйте сделать простой калькулятор, который будет только складывать числа.
Цикл for (по умолчанию)
Данный цикл используется для повторения файлов, пример:

Разберем начало цикла, цикл создается с ключевого слова for , следующим можно указать вид цикла /r , /d , /f , /l (необязательно). Вид цикла используется в разных ситуациях, в которых вы хотите его применить. Дальше в этом разберемся.
Переменная в цикле начинается с двух символов %% , а после записывается само название (названием переменной должен служить 1 единственный символ). \
В ( ) записываем пути к файлам, с которыми в будущем будем осуществлять работу.
Работа осуществляется в теле цикла, чтобы туда попасть, нужно записать ключевое слово do , открыть скобки () и приступить к написанию скрипта.
В этом случае, мы просто копируем файлы (fantasy.txt, myths.txt) в новую директорию.
Данный цикл используется для перебора файлов в директории:

Здесь мы уже указываем команду /r , следующим можно передать папку, которая будет считаться корневой, если не передавать директорию (C:\folder) — текущая директория будет считаться корневой. Также поиск файлов будет осуществляться и в подпапках.
%%f — является переменной. В скобках ( ) , можно передать файлы, по которым будет осуществляться поиск. Их может быть несколько (*.txt *.py *.bat) или можно записать . , она будет искать все файлы в целом (в подпапках тоже).
Используется для загрузки списка папок, которые являются подпапками текущей директории:

В данном примере мы получим список папок в директории C:\folder, которые начинаются с букв f и n . Если передать * , мы получим список всех папок находящихся в директории.
Этот цикл служит для загрузки на ряде цифр (range of numbers):

В этом примере мы выведим цифры от 1 до 10. \
batch-file
Аргументы командной строки командного файла
Аргументы командной строки, переданные в пакетные файлы
Параметрами командной строки группового файла являются значения параметров, представленные при запуске пакета. Они должны быть заключены в кавычки, если они содержат пробелы. В запущенном пакетном файле аргументы используются для различных целей, то есть перенаправления на :labels , установки переменных или запущенных команд.
Аргументы упоминаются в пакетном файле с использованием %1, %2, . %9 .
-
В приведенном выше примере двойные кавычки удаляются с помощью модификатора аргумента %
Пакетные файлы с более чем 9 аргументами
Когда подано более 9 аргументов, можно использовать команду shift [/n] , где /n означает начало с n-го аргумента, n — от нуля до восьми.
Цитирование через аргументы:
Обратите внимание, что в приведенном выше примере замедленная переменная расширения i используется для назначения значений аргументов массиву переменных. Команда call позволяет отображать такие значения переменных внутри цикла.
Подсчет аргументов:
Установите переменную в n-й аргумент:
Смещение аргументов внутри скобок
Давайте получим следующий example.bat и вызовите его с аргументами 1 , 2 и 3 :
Поскольку изменение переменной будет меняться после достижения контекста конечных скобок, выход будет:
Поскольку это может быть проблемой при перемещении внутри скобок для доступа к аргументу, вам необходимо использовать вызов:
теперь выход будет 3 . Поскольку команда CALL используется (что приведет к дополнительному расширению переменной), этот метод может также параметризоваться:
Пакетный скрипт – Обзор
Пакетный сценарий включен для автоматизации последовательностей команд, которые повторяются по своей природе. Сценарии – это способ, с помощью которого можно облегчить эту необходимость, автоматизируя эти последовательности команд, чтобы упростить свою жизнь в оболочке и сделать ее более продуктивной. В большинстве организаций Batch Script так или иначе включен для автоматизации вещей.
Некоторые функции пакетного скрипта –
Может читать входные данные пользователей, чтобы их можно было обрабатывать дальше.
Имеет управляющие структуры, например, для переключения, для лучшей автоматизации и написания сценариев.
Поддерживает расширенные функции, такие как функции и массивы.
Поддерживает регулярные выражения.
Может включать в себя другие программные коды, такие как Perl.
Может читать входные данные пользователей, чтобы их можно было обрабатывать дальше.
Имеет управляющие структуры, например, для переключения, для лучшей автоматизации и написания сценариев.
Поддерживает расширенные функции, такие как функции и массивы.
Поддерживает регулярные выражения.
Может включать в себя другие программные коды, такие как Perl.
Некоторые из наиболее часто используемых пакетных сценариев –
Настройка серверов для разных целей.
Автоматизация служебных операций, таких как удаление ненужных файлов или файлов журналов.
Автоматизация развертывания приложений из одной среды в другую.
Установка программ на разных машинах одновременно.
Настройка серверов для разных целей.
Автоматизация служебных операций, таких как удаление ненужных файлов или файлов журналов.
Автоматизация развертывания приложений из одной среды в другую.
Установка программ на разных машинах одновременно.
Пакетные сценарии хранятся в простых текстовых файлах, содержащих строки с командами, которые выполняются последовательно, одна за другой. Эти файлы имеют специальное расширение BAT или CMD. Файлы этого типа распознаются и выполняются через интерфейс (иногда называемый оболочкой), предоставляемый системным файлом, называемым интерпретатором команд. В системах Windows этот интерпретатор известен как cmd.exe.
Для запуска командного файла достаточно просто щелкнуть по нему. Пакетные файлы также можно запускать в командной строке или в строке запуска-запуска. В этом случае необходимо использовать полное имя пути, если только путь к файлу не находится в среде пути. Ниже приведен простой пример пакетного сценария. Этот пакетный скрипт при запуске удаляет все файлы в текущем каталоге.
Пакетный скрипт – Окружающая среда
В этой главе описывается среда, связанная с Batch Script.
Написание и выполнение
Как правило, для создания командного файла используется блокнот. Это самый простой инструмент для создания командных файлов. Далее идет среда выполнения для пакетных сценариев. В системах Windows это делается через командную строку или cmd.exe. Все командные файлы запускаются в этой среде.
Ниже приведены различные способы запуска cmd.exe –
Способ 1. Перейдите в C: \ Windows \ System32 и дважды щелкните файл cmd.

Способ 2 – с помощью команды запуска – следующий снимок показывает, чтобы найти командную строку (cmd.exe) на Windows Server 2012.

После запуска cmd.exe вы увидите следующий экран. Это будет ваша среда для выполнения ваших пакетных сценариев.

Переменные среды
Чтобы запустить пакетные файлы из командной строки, вам нужно либо перейти в папку, в которой хранится пакетный файл, либо вы можете указать местоположение файла в переменной среды path. Таким образом, предполагая, что пакетный файл хранится в папке C:\Application\bin , вам нужно будет следовать этим инструкциям для включения переменной PATH.
| Операционные системы | Выход |
|---|---|
| Windows | Добавить строку; C:\Application\bin до конца системной переменной PATH. |
Пакетный скрипт – Команды
В этой главе мы рассмотрим некоторые из часто используемых пакетных команд.
Эта пакетная команда показывает версию MS-DOS, которую вы используете.
Это пакетная команда, которая связывает расширение с типом файла (FTYPE), отображает существующие ассоциации или удаляет связь.
Эта пакетная команда помогает вносить изменения в другой каталог или отображает текущий каталог.
Эта пакетная команда очищает экран.
Эта пакетная команда используется для копирования файлов из одного места в другое.
Эта пакетная команда удаляет файлы, а не каталоги.
Эта пакетная команда выводит содержимое каталога.
Эта пакетная команда поможет найти системную дату.
Эта пакетная команда отображает сообщения или включает или выключает отображение команды.
Эта пакетная команда выходит из консоли DOS.
Эта пакетная команда создает новый каталог в текущем местоположении.
Эта пакетная команда перемещает файлы или каталоги между каталогами.
Эта пакетная команда отображает или устанавливает переменную пути.
Эта пакетная команда запрашивает пользователя и ожидает ввода строки ввода.
Эта пакетная команда может использоваться для изменения или сброса приглашения cmd.exe.
Эта пакетная команда удаляет каталоги, но каталоги должны быть пустыми, прежде чем их можно будет удалить.
Переименовывает файлы и каталоги
Эта пакетная команда используется для замечаний в пакетных файлах, предотвращая выполнение содержимого примечания.
Эта пакетная команда запускает программу в новом окне или открывает документ.
Эта пакетная команда устанавливает или отображает время.
Эта пакетная команда печатает содержимое файла или файлов на выход.
Эта пакетная команда отображает метки тома.
Отображает или устанавливает атрибуты файлов в текущем каталоге
Эта пакетная команда проверяет диск на наличие проблем.
Эта пакетная команда предоставляет пользователю список параметров.
Эта пакетная команда вызывает другой экземпляр командной строки.
Эта пакетная команда сравнивает 2 файла в зависимости от размера файла.
Эта пакетная команда преобразует том из файловой системы FAT16 или FAT32 в файловую систему NTFS.
Эта пакетная команда показывает все установленные драйверы устройств и их свойства.
Эта пакетная команда извлекает файлы из сжатых CAB-файлов.
Эта пакетная команда ищет строку в файлах или на входе, выводя совпадающие строки.
Эта пакетная команда форматирует диск для использования файловой системы, поддерживаемой Windows, такой как FAT, FAT32 или NTFS, тем самым перезаписывая предыдущее содержимое диска.
Эта пакетная команда показывает список предоставленных Windows команд.
Эта пакетная команда отображает Windows IP Configuration. Показывает конфигурацию по соединению и имя этого соединения.
Эта пакетная команда добавляет, устанавливает или удаляет метку диска.
Эта пакетная команда отображает содержимое файла или файлов, по одному экрану за раз.
Предоставляет различные сетевые службы в зависимости от используемой команды.
Эта пакетная команда отправляет пакеты ICMP / IP «эхо» по сети на указанный адрес.
Эта пакетная команда выключает компьютер или выходит из системы текущего пользователя.
Эта пакетная команда берет входные данные из исходного файла и сортирует их содержимое в алфавитном порядке, от A до Z или от Z до A. Она печатает выходные данные на консоли.
Эта пакетная команда назначает букву диска локальной папке, отображает текущие назначения или удаляет назначение.
Эта пакетная команда показывает конфигурацию компьютера и его операционной системы.
Эта пакетная команда завершает одну или несколько задач.
Эта пакетная команда выводит список задач, включая имя задачи и идентификатор процесса (PID).
Эта пакетная команда копирует файлы и каталоги более сложным способом.
Эта пакетная команда отображает дерево всех подкаталогов текущего каталога до любого уровня рекурсии или глубины.
Эта пакетная команда перечисляет фактические различия между двумя файлами.
Эта пакетная команда показывает и настраивает свойства разделов диска.
Эта пакетная команда устанавливает заголовок, отображаемый в окне консоли.
Отображает список переменных среды в текущей системе.
Эта пакетная команда показывает версию MS-DOS, которую вы используете.
Это пакетная команда, которая связывает расширение с типом файла (FTYPE), отображает существующие ассоциации или удаляет связь.
Эта пакетная команда помогает вносить изменения в другой каталог или отображает текущий каталог.
Эта пакетная команда очищает экран.
Эта пакетная команда используется для копирования файлов из одного места в другое.
Эта пакетная команда удаляет файлы, а не каталоги.
Эта пакетная команда выводит содержимое каталога.
Эта пакетная команда поможет найти системную дату.
Эта пакетная команда отображает сообщения или включает или выключает отображение команды.
Эта пакетная команда выходит из консоли DOS.
Эта пакетная команда создает новый каталог в текущем местоположении.
Эта пакетная команда перемещает файлы или каталоги между каталогами.
Эта пакетная команда отображает или устанавливает переменную пути.
Эта пакетная команда запрашивает пользователя и ожидает ввода строки ввода.
Эта пакетная команда может использоваться для изменения или сброса приглашения cmd.exe.
Эта пакетная команда удаляет каталоги, но каталоги должны быть пустыми, прежде чем их можно будет удалить.
Переименовывает файлы и каталоги
Эта пакетная команда используется для замечаний в пакетных файлах, предотвращая выполнение содержимого примечания.
Эта пакетная команда запускает программу в новом окне или открывает документ.
Эта пакетная команда устанавливает или отображает время.
Эта пакетная команда печатает содержимое файла или файлов на выход.
Эта пакетная команда отображает метки тома.
Отображает или устанавливает атрибуты файлов в текущем каталоге
Эта пакетная команда проверяет диск на наличие проблем.
Эта пакетная команда предоставляет пользователю список параметров.
Эта пакетная команда вызывает другой экземпляр командной строки.
Эта пакетная команда сравнивает 2 файла в зависимости от размера файла.
Эта пакетная команда преобразует том из файловой системы FAT16 или FAT32 в файловую систему NTFS.
Эта пакетная команда показывает все установленные драйверы устройств и их свойства.
Эта пакетная команда извлекает файлы из сжатых CAB-файлов.
Эта пакетная команда ищет строку в файлах или на входе, выводя совпадающие строки.
Эта пакетная команда форматирует диск для использования файловой системы, поддерживаемой Windows, такой как FAT, FAT32 или NTFS, тем самым перезаписывая предыдущее содержимое диска.
Эта пакетная команда показывает список предоставленных Windows команд.
Эта пакетная команда отображает Windows IP Configuration. Показывает конфигурацию по соединению и имя этого соединения.
Эта пакетная команда добавляет, устанавливает или удаляет метку диска.
Эта пакетная команда отображает содержимое файла или файлов, по одному экрану за раз.
Предоставляет различные сетевые службы в зависимости от используемой команды.
Эта пакетная команда отправляет пакеты ICMP / IP «эхо» по сети на указанный адрес.
Эта пакетная команда выключает компьютер или выходит из системы текущего пользователя.
Эта пакетная команда берет входные данные из исходного файла и сортирует их содержимое в алфавитном порядке, от A до Z или от Z до A. Она печатает выходные данные на консоли.
Эта пакетная команда назначает букву диска локальной папке, отображает текущие назначения или удаляет назначение.
Эта пакетная команда показывает конфигурацию компьютера и его операционной системы.
Эта пакетная команда завершает одну или несколько задач.
Эта пакетная команда выводит список задач, включая имя задачи и идентификатор процесса (PID).
Эта пакетная команда копирует файлы и каталоги более сложным способом.
Эта пакетная команда отображает дерево всех подкаталогов текущего каталога до любого уровня рекурсии или глубины.
Эта пакетная команда перечисляет фактические различия между двумя файлами.
Эта пакетная команда показывает и настраивает свойства разделов диска.
Эта пакетная команда устанавливает заголовок, отображаемый в окне консоли.
Отображает список переменных среды в текущей системе.
Пакетный скрипт – Файлы
В этой главе мы узнаем, как создавать, сохранять, выполнять и изменять командные файлы.
Создание пакетных файлов
Пакетные файлы обычно создаются в блокноте. Следовательно, самый простой способ – открыть блокнот и ввести команды, необходимые для скрипта. Для этого упражнения откройте блокнот и введите следующие инструкции.
Сохранение командных файлов
После того, как ваш пакетный файл создан, следующим шагом является сохранение вашего пакетного файла. Пакетные файлы имеют расширение .bat или .cmd. Некоторые общие правила, которые следует учитывать при именовании командных файлов –
Старайтесь избегать пробелов при именовании командных файлов, это иногда создает проблемы, когда они вызываются из других скриптов.
Не называйте их по имени общих пакетных файлов, которые доступны в системе, таких как ping.cmd.
Старайтесь избегать пробелов при именовании командных файлов, это иногда создает проблемы, когда они вызываются из других скриптов.
Не называйте их по имени общих пакетных файлов, которые доступны в системе, таких как ping.cmd.

На приведенном выше снимке экрана показано, как сохранить пакетный файл. При сохранении вашего командного файла необходимо учитывать несколько моментов.
- Не забудьте поставить .bat или .cmd в конце имени файла.
- Выберите опцию «Сохранить как тип» как «Все файлы».
- Поместите все имя файла в кавычки «».
Выполнение пакетных файлов
Ниже приведены шаги для выполнения командного файла –
Шаг 1 – Откройте командную строку (cmd.exe).
Шаг 2 – Перейдите в место, где хранятся файлы .bat или .cmd.
Шаг 3. Запишите имя файла, как показано на следующем рисунке, и нажмите кнопку «Ввод», чтобы запустить пакетный файл.
Шаг 1 – Откройте командную строку (cmd.exe).
Шаг 2 – Перейдите в место, где хранятся файлы .bat или .cmd.
Шаг 3. Запишите имя файла, как показано на следующем рисунке, и нажмите кнопку «Ввод», чтобы запустить пакетный файл.

Модификация пакетных файлов
Ниже приведены шаги для изменения существующего командного файла.
Шаг 1 – Откройте проводник Windows.
Шаг 2 – Перейдите в место, где хранятся файлы .bat или .cmd.
Шаг 3 – Щелкните правой кнопкой мыши файл и выберите пункт «Редактировать» в контекстном меню. Файл откроется в Блокноте для дальнейшего редактирования.
Шаг 1 – Откройте проводник Windows.
Шаг 2 – Перейдите в место, где хранятся файлы .bat или .cmd.
Шаг 3 – Щелкните правой кнопкой мыши файл и выберите пункт «Редактировать» в контекстном меню. Файл откроется в Блокноте для дальнейшего редактирования.

Пакетный скрипт – Синтаксис
Обычно первая строка в пакетном файле часто состоит из следующей команды.
ECHO Command
По умолчанию командный файл будет отображать свою команду во время работы. Цель этой первой команды – отключить этот дисплей. Команда «echo off» отключает отображение всего сценария, кроме самой команды «echo off». Знак “@” перед “@” заставляет команду также применяться к себе.
Документация
Очень часто пакетные файлы также содержат строки, начинающиеся с команды «Rem». Это способ ввода комментариев и документации. Компьютер игнорирует что-либо в строке, следующей за Rem. Для пакетных файлов с возрастающей сложностью часто бывает полезно оставлять комментарии.
Первая пакетная сценарий
Давайте создадим нашу простую программу первого пакетного сценария. Откройте блокнот и введите следующие строки кода. Сохраните файл как «List.cmd».
Код делает следующее –
Использует команду echo off, чтобы гарантировать, что команды не отображаются при выполнении кода.
Команда Rem используется для добавления комментария, чтобы сказать, что именно делает этот пакетный файл.
Команда dir используется для получения содержимого папки C: \ Program Files.
Команда ‘>’ используется для перенаправления вывода в файл C: \ lists.txt.
Наконец, команда echo используется, чтобы сообщить пользователю, что операция завершена.
Использует команду echo off, чтобы гарантировать, что команды не отображаются при выполнении кода.
Команда Rem используется для добавления комментария, чтобы сказать, что именно делает этот пакетный файл.
Команда dir используется для получения содержимого папки C: \ Program Files.
Команда ‘>’ используется для перенаправления вывода в файл C: \ lists.txt.
Наконец, команда echo используется, чтобы сообщить пользователю, что операция завершена.
После выполнения вышеуказанной команды имена файлов в C: \ Program Files будут отправлены в файл C: \ Lists.txt, а в командной строке отобразится сообщение «Программа завершена».
Пакетный скрипт – Переменные
В пакетных файлах есть два типа переменных. Один предназначен для параметров, которые могут быть переданы при вызове командного файла, а другой – с помощью команды set.
Аргументы командной строки
Пакетные сценарии поддерживают концепцию аргументов командной строки, в которой аргументы могут быть переданы в пакетный файл при вызове. Аргументы можно вызывать из пакетных файлов через переменные% 1,% 2,% 3 и т. Д.
В следующем примере показан командный файл, который принимает 3 аргумента командной строки и выводит их на экран командной строки.
Если вышеуказанный пакетный скрипт хранится в файле с именем test.bat, и мы должны были запустить пакет как
Ниже приведен скриншот того, как это будет выглядеть в командной строке при выполнении командного файла.

Приведенная выше команда производит следующий вывод.
Если бы мы запускали партию как
Результат будет оставаться таким же, как указано выше. Однако четвертый параметр будет проигнорирован.
Установить команду
Другой способ инициализации переменных – команда set. Ниже приводится синтаксис команды set.
Синтаксис
имя-переменной – это имя переменной, которую вы хотите установить.
значение – это значение, которое необходимо установить для переменной.
/ A – этот переключатель используется, если значение должно иметь числовой характер.
имя-переменной – это имя переменной, которую вы хотите установить.
значение – это значение, которое необходимо установить для переменной.
/ A – этот переключатель используется, если значение должно иметь числовой характер.
В следующем примере показан простой способ использования команды set.
пример
В приведенном выше фрагменте кода переменная с именем message определяется и устанавливается со значением «Hello World».
Чтобы отобразить значение переменной, обратите внимание, что переменная должна быть заключена в знак%.
В приведенном выше фрагменте кода переменная с именем message определяется и устанавливается со значением «Hello World».
Чтобы отобразить значение переменной, обратите внимание, что переменная должна быть заключена в знак%.
Выход
Приведенная выше команда производит следующий вывод.
Работа с числовыми значениями
В пакетном скрипте также можно определить переменную для хранения числового значения. Это можно сделать с помощью переключателя / A.
В следующем коде показан простой способ задания числовых значений с помощью переключателя / A.
Сначала мы устанавливаем значение 2 переменных, a и b, равным 5 и 10 соответственно.
Мы добавляем эти значения и сохраняем в переменной c.
Наконец, мы отображаем значение переменной c.
Сначала мы устанавливаем значение 2 переменных, a и b, равным 5 и 10 соответственно.
Мы добавляем эти значения и сохраняем в переменной c.
Наконец, мы отображаем значение переменной c.
Результат вышеупомянутой программы будет 15.
Все арифметические операторы работают в пакетных файлах. В следующем примере показано, что арифметические операторы могут использоваться в пакетных файлах.
Приведенная выше команда производит следующий вывод.
Локальные и глобальные переменные
В любом языке программирования есть возможность пометить переменные как имеющие какую-то область видимости, то есть раздел кода, к которому они могут быть доступны. Обычно переменная, имеющая глобальную область видимости, может быть доступна из любой точки программы, тогда как локальные переменные имеют определенную границу, в которой они могут быть доступны.
В сценариях DOS также есть определение для локальных и глобальных переменных. По умолчанию переменные являются глобальными для всего сеанса командной строки. Вызовите команду SETLOCAL, чтобы сделать переменные локальными для области действия вашего скрипта. После вызова SETLOCAL любые переменные возвращаются после вызова ENDLOCAL, вызова EXIT или когда выполнение достигает конца файла (EOF) в вашем сценарии. В следующем примере показано различие, когда в сценарии установлены локальные и глобальные переменные.
пример
Несколько ключевых моментов, которые стоит отметить по поводу вышеупомянутой программы.
«Globalvar» определен с глобальной областью действия и доступен по всему сценарию.
Переменная ‘var’ определена в локальной области видимости, потому что она заключена между блоками ‘SETLOCAL’ и ‘ENDLOCAL’. Следовательно, эта переменная будет уничтожена, как только будет выполнен оператор ENDLOCAL.
«Globalvar» определен с глобальной областью действия и доступен по всему сценарию.
Переменная ‘var’ определена в локальной области видимости, потому что она заключена между блоками ‘SETLOCAL’ и ‘ENDLOCAL’. Следовательно, эта переменная будет уничтожена, как только будет выполнен оператор ENDLOCAL.
Выход
Приведенная выше команда производит следующий вывод.
Вы заметите, что команда echo% var% ничего не даст, потому что после оператора ENDLOCAL переменная ‘var’ больше не будет существовать.
Работа с переменными среды
Если у вас есть переменные, которые будут использоваться в пакетных файлах, то всегда предпочтительнее использовать переменные среды. Как только переменная среды определена, к ней можно получить доступ через знак%. В следующем примере показано, как увидеть JAVA_HOME, определенный в системе. Переменная JAVA_HOME является ключевым компонентом, который обычно используется широким спектром приложений.
Вывод покажет каталог JAVA_HOME, который будет зависеть от системы к системе. Ниже приведен пример вывода.
Пакетный скрипт – Комментарии
Всегда полезно добавлять комментарии или документацию для создаваемых скриптов. Это необходимо для обслуживания сценариев, чтобы понять, что на самом деле делает сценарий.
Например, рассмотрим следующий фрагмент кода, который не имеет формы комментариев. Если какой-либо обычный человек, который не разработал следующий сценарий, попытается понять сценарий, ему потребуется много времени, чтобы понять, что на самом деле делает сценарий.
Комментарии с использованием оператора Rem
Есть два способа создания комментариев в Batch Script; один через команду Rem. Любой текст, следующий за оператором Rem, будет рассматриваться как комментарий и не будет выполняться. Ниже приводится общий синтаксис этого утверждения.
Синтаксис
где «Замечания» – это комментарии, которые необходимо добавить.
В следующем примере показан простой способ использования команды Rem .
пример
Выход
Приведенная выше команда производит следующий вывод. Вы заметите, что строка с оператором Rem не будет выполнена.
Комментарии, используя :: Заявление
Другой способ создания комментариев в Batch Script – через команду . Любой текст, следующий за оператором . будет рассматриваться как комментарий и не будет выполнен. Ниже приводится общий синтаксис этого утверждения.
Синтаксис
где «Замечания» – это комментарий, который необходимо добавить.
В следующем примере показан простой способ использования команды Rem.
пример
Выход
Приведенная выше команда производит следующий вывод. Вы заметите, что строка с оператором :: не будет выполнена.
Примечание. Если у вас слишком много строк Rem, это может замедлить выполнение кода, потому что в конце каждая строка кода в командном файле все равно должна быть выполнена.
Давайте рассмотрим пример большого скрипта, который мы видели в начале этой темы, и посмотрим, как он выглядит, когда к нему добавляется документация.
Теперь вы можете видеть, что код стал более понятным для пользователей, которые не разработали код и, следовательно, стал более понятным.
Пакетный скрипт – Строки
В DOS строка представляет собой упорядоченную коллекцию символов, например «Hello, World!».
Строка может быть создана в DOS следующим образом.
Строковая интерполяция – это способ создания нового значения String из набора констант, переменных, литералов и выражений путем включения их значений в строковый литерал.
Вы можете использовать оператор set для объединения двух строк или строки и символа, или двух символов. Ниже приведен простой пример, который показывает, как использовать конкатенацию строк.
В сценариях DOS не определена функция длины для определения длины строки. Существуют пользовательские функции, которые можно использовать для одного и того же. Ниже приведен пример пользовательской функции для определения длины строки.
Переменная, которая была установлена как строка с использованием переменной set, может быть преобразована в целое число с помощью переключателя / A, который использует переменную set. В следующем примере показано, как это можно сделать.
Это используется для выравнивания текста вправо, что обычно используется для улучшения читаемости числовых столбцов.
Это используется для извлечения символов из начала строки.
Это используется для извлечения подстроки через положение символов в строке.
Функция подстановки строк также может быть использована для удаления подстроки из другой строки.
Это используется для удаления первого и последнего символа строки.
Это используется для удаления всех пробелов в строке путем подстановки.
Чтобы заменить подстроку другой строкой, используйте функцию подстановки строк.
Это используется для извлечения символов из конца строки.
Строка может быть создана в DOS следующим образом.
Строковая интерполяция – это способ создания нового значения String из набора констант, переменных, литералов и выражений путем включения их значений в строковый литерал.
Вы можете использовать оператор set для объединения двух строк или строки и символа, или двух символов. Ниже приведен простой пример, который показывает, как использовать конкатенацию строк.
В сценариях DOS не определена функция длины для определения длины строки. Существуют пользовательские функции, которые можно использовать для одного и того же. Ниже приведен пример пользовательской функции для определения длины строки.
Переменная, которая была установлена как строка с использованием переменной set, может быть преобразована в целое число с помощью переключателя / A, который использует переменную set. В следующем примере показано, как это можно сделать.
Это используется для выравнивания текста вправо, что обычно используется для улучшения читаемости числовых столбцов.
Это используется для извлечения символов из начала строки.
Это используется для извлечения подстроки через положение символов в строке.
Функция подстановки строк также может быть использована для удаления подстроки из другой строки.
Это используется для удаления первого и последнего символа строки.
Это используется для удаления всех пробелов в строке путем подстановки.
Чтобы заменить подстроку другой строкой, используйте функцию подстановки строк.
Это используется для извлечения символов из конца строки.
Пакетный скрипт – Массивы
Массивы не определены как тип в пакетном скрипте, но могут быть реализованы. Следующие вещи необходимо отметить, когда массивы реализованы в Batch Script.
- Каждый элемент массива должен быть определен командой set.
- Цикл ‘for’ потребуется для перебора значений массива.
Создание массива
Массив создается с помощью следующей команды set.
Где 0 – индекс массива, а 1 – значение, присвоенное первому элементу массива.
Другой способ реализации массивов – определить список значений и выполнить итерацию по списку значений. В следующем примере показано, как это можно реализовать.
пример
Выход
Приведенная выше команда производит следующий вывод.
Доступ к массивам
Вы можете извлечь значение из массива, используя синтаксис нижнего индекса, передавая индекс значения, которое вы хотите получить, в квадратных скобках сразу после имени массива.
пример
В этом примере индекс начинается с 0, что означает, что к первому элементу можно получить доступ, используя индекс как 0, ко второму элементу можно получить доступ, используя индекс как 1, и так далее. Давайте проверим следующий пример для создания, инициализации и доступа к массивам –
Приведенная выше команда производит следующий вывод.
Модификация массива
Чтобы добавить элемент в конец массива, вы можете использовать элемент set вместе с последним индексом элемента массива.
пример
Приведенная выше команда производит следующий вывод.
Вы можете изменить существующий элемент массива, назначив новое значение по заданному индексу, как показано в следующем примере:
Приведенная выше команда производит следующий вывод.
Итерация по массиву
Итерация по массиву достигается с помощью цикла for и прохождения каждого элемента массива. В следующем примере показан простой способ реализации массива.
Следующие вещи должны быть отмечены о вышеупомянутой программе –
Каждый элемент массива должен быть специально определен с помощью команды set.
Цикл for с параметром / L для перемещения по диапазонам используется для перебора массива.
Каждый элемент массива должен быть специально определен с помощью команды set.
Цикл for с параметром / L для перемещения по диапазонам используется для перебора массива.
Выход
Приведенная выше команда производит следующий вывод.
Длина массива
Длина массива определяется путем итерации по списку значений в массиве, поскольку нет прямой функции для определения количества элементов в массиве.
Выход
Выходные данные Приведенная выше команда производит следующий вывод.
Создание структур в массивах
Структуры также могут быть реализованы в пакетных файлах с использованием небольшого дополнительного кода для реализации. Следующий пример показывает, как этого можно достичь.
пример
В отношении приведенного выше кода необходимо отметить следующие ключевые моменты.
Каждая переменная, определенная с помощью команды set, имеет 2 значения, связанных с каждым индексом массива.
Переменная i установлена в 0, так что мы можем перебрать структуру, длина массива которой равна 3.
Мы всегда проверяем условие того, равно ли значение i значению len, и если нет, мы перебираем код.
Мы можем получить доступ к каждому элементу структуры, используя обозначение obj [% i%].
Каждая переменная, определенная с помощью команды set, имеет 2 значения, связанных с каждым индексом массива.
Переменная i установлена в 0, так что мы можем перебрать структуру, длина массива которой равна 3.
Мы всегда проверяем условие того, равно ли значение i значению len, и если нет, мы перебираем код.
Мы можем получить доступ к каждому элементу структуры, используя обозначение obj [% i%].
Выход
Приведенная выше команда производит следующий вывод.
Пакетный сценарий – принятие решений
Структуры принятия решений требуют, чтобы программист указал одно или несколько условий, которые должны быть оценены или протестированы программой, вместе с оператором или инструкциями, которые должны быть выполнены, если условие определено как истинное , и, необязательно, другие операторы, которые должны быть выполнены, если условие определяется как ложное .
Первое заявление о принятии решения – это утверждение «если».
Следующим оператором принятия решения является оператор If / else. Ниже приводится общая форма этого утверждения.
Иногда требуется иметь несколько операторов if, встроенных друг в друга. Ниже приводится общая форма этого утверждения.
Первое заявление о принятии решения – это утверждение «если».
Следующим оператором принятия решения является оператор If / else. Ниже приводится общая форма этого утверждения.
Иногда требуется иметь несколько операторов if, встроенных друг в друга. Ниже приводится общая форма этого утверждения.
Пакетный скрипт – Операторы
Оператор – это символ, который указывает компилятору выполнять определенные математические или логические манипуляции.
В пакетном скрипте возможны следующие типы операторов.
- Арифметические операторы
- Реляционные операторы
- Логические операторы
- Операторы присваивания
- Битовые операторы
Арифметические Операторы
Язык пакетного сценария поддерживает обычные арифметические операторы, как и любой язык. Ниже приведены доступные арифметические операторы.
| оператор | Описание | пример |
|---|---|---|
| + | Добавление двух операндов | 1 + 2 даст 3 |
| – | Вычитает второй операнд из первого | 2 – 1 даст 1 |
| * | Умножение обоих операндов | 2 * 2 даст 4 |
| / | Разделение числителя по знаменателю | 3/2 даст 1,5 |
| % | Оператор модуля и остаток после целочисленного деления | 3% 2 даст 1 |
Операторы отношений
Реляционные операторы позволяют сравнивать объекты. Ниже представлены реляционные операторы.
| оператор | Описание | пример |
|---|---|---|
| EQU | Проверяет равенство между двумя объектами | 2 экв 2 даст верный |
| NEQ | Проверяет разницу между двумя объектами | 3 NEQ 2 даст истинное |
| LSS | Проверяет, является ли левый объект меньше правого операнда | 2 LSS 3 даст правду |
| LEQ | Проверяет, является ли левый объект меньше или равен правому операнду | 2 LEQ 3 даст истинное |
| GTR | Проверяет, является ли левый объект больше правого операнда | 3 гтп 2 даст верный |
| GEQ | Проверяет, является ли левый объект больше или равен правому операнду | 3 GEQ 2 даст истинное |
Логические Операторы
Логические операторы используются для оценки булевых выражений. Ниже приведены доступные логические операторы.
Пакетный язык оснащен полным набором булевых логических операторов, таких как AND, OR, XOR, но только для двоичных чисел. Также нет никаких значений ИСТИНА или ЛОЖЬ. Единственным логическим оператором, доступным для условий, является оператор NOT.
| оператор | Описание |
|---|---|
| А ТАКЖЕ | Это логический оператор «и» |
| ИЛИ ЖЕ | Это логический оператор «или» |
| НЕ | Это логический оператор «не» |
Операторы присваивания
Язык Batch Script также предоставляет операторы присваивания. Ниже приведены доступные операторы присваивания.
Битовые операторы
Побитовые операторы также возможны в пакетном скрипте. Ниже приведены доступные операторы.
| оператор | Описание |
|---|---|
| & | Это побитовый оператор «и» |
| | | Это побитовый оператор «или» |
| ^ | Это побитовый «xor» или Exclusive или оператор |
Ниже приведена таблица истинности, демонстрирующая этих операторов.
| п | Q | P & Q | р | Q | р ^ д |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Пакетный скрипт – ДАТА и ВРЕМЯ
Дата и время в сценариях DOS имеют следующие две основные команды для получения даты и времени системы.
Эта команда получает системную дату.
Синтаксис
пример
Выход
Текущая дата будет отображаться в командной строке. Например,
ВРЕМЯ
Эта команда устанавливает или отображает время.
Синтаксис
пример
Выход
Текущее системное время будет отображаться. Например,
Ниже приведены некоторые реализации, которые можно использовать для получения даты и времени в разных форматах.
Дата в формате год-месяц-день
пример
Выход
Приведенная выше команда производит следующий вывод.
Пакетный скрипт – ввод / вывод
Существует три универсальных «файла» для ввода с клавиатуры, печати текста на экране и ошибок печати на экране. Файл «Стандартный вход», известный как stdin , содержит входные данные для программы / скрипта. Файл «Standard Out», известный как stdout , используется для записи вывода для отображения на экране. Наконец, файл «Standard Err», известный как stderr , содержит любые сообщения об ошибках для отображения на экране.
На каждый из этих трех стандартных файлов, иначе называемых стандартными потоками, ссылаются с помощью чисел 0, 1 и 2. Stdin – это файл 0, stdout – это файл 1, а stderr – это файл 2.
Перенаправление вывода (Stdout и Stderr)
Обычной практикой в пакетных файлах является отправка вывода программы в файл журнала. Оператор> отправляет или перенаправляет stdout или stderr в другой файл. В следующем примере показано, как это можно сделать.
В приведенном выше примере стандартный вывод команды Dir C: \ перенаправляется в файл list.txt.
Если вы добавите число 2 к фильтру перенаправления, он перенаправит stderr в файл lists.txt.
Можно даже объединить потоки stdout и stderr, используя номер файла и префикс «&». Ниже приведен пример.
Подавление вывода программы
Псевдофайл NUL используется для отмены любого вывода из программы. В следующем примере показано, что вывод команды DIR отбрасывается путем отправки вывода в NUL.
STDIN
Чтобы работать с Stdin, вы должны использовать обходной путь для достижения этой цели. Это может быть сделано путем перенаправления собственного стандартного ввода командной строки, называемого CON.
В следующем примере показано, как можно перенаправить вывод в файл с именем lists.txt. После того, как вы выполните приведенную ниже команду, командная строка будет принимать все введенные пользователем данные, пока не получит символ EOF. Позже он отправляет все входные данные в файл lists.txt.
Пакетный скрипт – Код возврата
По умолчанию, когда выполнение командной строки завершено, оно должно либо возвращать ноль, если выполнение завершается успешно, либо ненулевое, если выполнение не выполняется. Когда пакетный скрипт возвращает ненулевое значение после сбоя выполнения, ненулевое значение будет указывать, что такое номер ошибки. Затем мы будем использовать номер ошибки, чтобы определить ее причину и соответствующим образом ее устранить.
Ниже приведены общий код выхода и их описание.
Недостаточно виртуальной памяти.
Это указывает на то, что в Windows не хватает памяти.
Недостаточно виртуальной памяти.
Это указывает на то, что в Windows не хватает памяти.
Уровень ошибки
Переменная среды% ERRORLEVEL% содержит код возврата последней выполненной программы или сценария.
По умолчанию способ проверки на наличие ОШИБКИ находится через следующий код.
Синтаксис
Обычно используется команда EXIT / B% ERRORLEVEL% в конце пакетного файла, чтобы вернуть коды ошибок из пакетного файла.
EXIT / B в конце командного файла остановит выполнение командного файла.
Используйте EXIT / B <exitcodes> в конце пакетного файла для возврата пользовательских кодов возврата.
Переменная среды% ERRORLEVEL% содержит последний уровень ошибки в пакетном файле, который является последними кодами ошибок из последней выполненной команды. В пакетном файле всегда рекомендуется использовать переменные среды вместо постоянных значений, поскольку одна и та же переменная расширяется до разных значений на разных компьютерах.
Давайте посмотрим на быстрый пример того, как проверить коды ошибок из командного файла.
пример
Давайте предположим, что у нас есть пакетный файл с именем Find.cmd, который имеет следующий код. В коде мы четко упомянули, что если мы не найдем файл lists.txt, то должны установить уровень ошибки равным 7. Точно так же, если мы видим, что переменная userprofile не определена, мы должны установить код уровня ошибки на 9.
Давайте предположим, что у нас есть еще один файл с именем App.cmd, который сначала вызывает Find.cmd. Теперь, если Find.cmd возвращает ошибку, в которой он устанавливает уровень ошибки больше 0, он завершает работу программы. В следующем пакетном файле после вызова Find.cnd он на самом деле проверяет, не превышает ли уровень ошибки больше 0.
Выход
В приведенной выше программе мы можем использовать следующие сценарии:
Если файл c: \ lists.txt не существует, в выводе консоли ничего не будет отображаться.
Если переменная userprofile не существует, в выводе консоли ничего не будет отображаться.
Если оба вышеуказанных условия выполнены, в командной строке будет отображена строка «Успешное завершение».
Если файл c: \ lists.txt не существует, в выводе консоли ничего не будет отображаться.
Если переменная userprofile не существует, в выводе консоли ничего не будет отображаться.
Если оба вышеуказанных условия выполнены, в командной строке будет отображена строка «Успешное завершение».
Loops
В главе, посвященной принятию решений, мы увидели утверждения, которые последовательно выполнялись одно за другим. Кроме того, реализации также могут быть выполнены в пакетном скрипте, чтобы изменить поток управления в логике программы. Затем они классифицируются в поток контрольных операторов.
В Batch Script нет прямого оператора while, но мы можем очень легко реализовать этот цикл, используя оператор if и метки.
Конструкция «FOR» предлагает возможности зацикливания для пакетных файлов. Ниже приведена общая конструкция оператора for для работы со списком значений.
Оператор for также может перемещаться по диапазону значений. Ниже приводится общая форма заявления.
Ниже приводится классический оператор for, который доступен в большинстве языков программирования.
В Batch Script нет прямого оператора while, но мы можем очень легко реализовать этот цикл, используя оператор if и метки.
Конструкция «FOR» предлагает возможности зацикливания для пакетных файлов. Ниже приведена общая конструкция оператора for для работы со списком значений.
Оператор for также может перемещаться по диапазону значений. Ниже приводится общая форма заявления.
Ниже приводится классический оператор for, который доступен в большинстве языков программирования.
Цикл по аргументам командной строки
Оператор ‘for’ также можно использовать для проверки аргументов командной строки. В следующем примере показано, как можно использовать оператор for для циклического перебора аргументов командной строки.
пример
Выход
Давайте предположим, что приведенный выше код хранится в файле с именем Test.bat. Приведенная выше команда выдаст следующий вывод, если командный файл передает аргументы командной строки 1,2 и 3 как Test.bat 1 2 3.
Оператор break используется для изменения потока управления внутри циклов в любом языке программирования. Оператор break обычно используется в конструкциях цикла и используется для немедленного завершения самого внутреннего замкнутого цикла.
Оператор break используется для изменения потока управления внутри циклов в любом языке программирования. Оператор break обычно используется в конструкциях цикла и используется для немедленного завершения самого внутреннего замкнутого цикла.
Пакетный скрипт – Функции
Функция – это набор операторов, организованных вместе для выполнения определенной задачи. В пакетных сценариях аналогичный подход применяется для группировки логических операторов вместе для формирования функции.
Как и любые другие языки, функции в Batch Script следуют той же процедуре –
Объявление функции – сообщает компилятору имя функции, тип возвращаемого значения и параметры.
Определение функции – предоставляет фактическое тело функции.
Объявление функции – сообщает компилятору имя функции, тип возвращаемого значения и параметры.
Определение функции – предоставляет фактическое тело функции.
Определение функции
В пакетном скрипте функция определяется с помощью оператора метки. Когда функция вновь определена, она может принимать одно или несколько значений в качестве входных «параметров» для функции, обрабатывать функции в основном теле и передавать значения в функции в качестве выходных «возвращаемых типов».
Каждая функция имеет имя функции, которое описывает задачу, которую выполняет функция. Чтобы использовать функцию, вы «вызываете» эту функцию с ее именем и передаете ее входные значения (известные как аргументы), которые соответствуют типам параметров функции.
Ниже приведен синтаксис простой функции.
Имя_функции – это имя, данное функции, которое должно иметь некоторое значение, чтобы соответствовать действию функции.
Оператор EXIT используется для обеспечения правильного выхода из функции.
Имя_функции – это имя, данное функции, которое должно иметь некоторое значение, чтобы соответствовать действию функции.
Оператор EXIT используется для обеспечения правильного выхода из функции.
Ниже приведен пример простой функции.
пример
| S.No | Функции и описание |
|---|---|
| 1 | Вызов функции |
Функция вызывается в Batch Script с помощью команды call.
Функции могут работать с параметрами, просто передавая их при вызове функции.
Функции могут работать с возвращаемыми значениями, просто передавая имена переменных
Локальные переменные в функциях могут использоваться, чтобы избежать конфликтов имен и сохранить изменения переменных локальными для функции.
Возможность полностью инкапсулировать тело функции, сохраняя переменные локальными для функции и невидимыми для вызывающей стороны.
В Batch Script можно выполнять обычные операции ввода-вывода файлов, которые ожидаются на любом языке программирования.
Создание нового файла осуществляется с помощью фильтра перенаправления>. Этот фильтр можно использовать для перенаправления любого вывода в файл.
Запись содержимого в файлы также осуществляется с помощью фильтра перенаправления>. Этот фильтр можно использовать для перенаправления любого вывода в файл.
Запись содержимого в файлы также осуществляется с помощью фильтра двойного перенаправления >>. Этот фильтр можно использовать для добавления любого вывода в файл.
Чтение файлов в пакетном скрипте выполняется с помощью команды цикла FOR для прохождения каждой строки, определенной в файле, который необходимо прочитать.
Для удаления файлов Batch Script предоставляет команду DEL.
Для переименования файлов Batch Script предоставляет команду REN или RENAME.
Для перемещения файлов Batch Script предоставляет команду MOVE.
Оператор канала (|) принимает выходные данные (по умолчанию STDOUT) одной команды и направляет их на вход (по умолчанию STDIN) другой команды.
Когда запускается пакетный файл, он дает вам возможность передать параметры командной строки, которые затем можно прочитать в программе для дальнейшей обработки.
Одним из ограничений аргументов командной строки является то, что он может принимать только аргументы до% 9. Давайте возьмем пример этого ограничения.
В Batch Script можно выполнять обычные операции с папками, которые ожидаются на любом языке программирования.
Создание папки выполняется с помощью команды MD (Make directory).
Список содержимого папки можно выполнить с помощью команды dir. Эта команда позволяет вам увидеть доступные файлы и каталоги в текущем каталоге.
Для удаления папок Batch Scripting предоставляет команду DEL.
Для переименования папок Batch Script предоставляет команду REN или RENAME.
Для перемещения папок Batch Script предоставляет команду MOVE.
Функция вызывается в Batch Script с помощью команды call.
Функции могут работать с параметрами, просто передавая их при вызове функции.
Функции могут работать с возвращаемыми значениями, просто передавая имена переменных
Локальные переменные в функциях могут использоваться, чтобы избежать конфликтов имен и сохранить изменения переменных локальными для функции.
Возможность полностью инкапсулировать тело функции, сохраняя переменные локальными для функции и невидимыми для вызывающей стороны.
В Batch Script можно выполнять обычные операции ввода-вывода файлов, которые ожидаются на любом языке программирования.
Создание нового файла осуществляется с помощью фильтра перенаправления>. Этот фильтр можно использовать для перенаправления любого вывода в файл.
Запись содержимого в файлы также осуществляется с помощью фильтра перенаправления>. Этот фильтр можно использовать для перенаправления любого вывода в файл.
Запись содержимого в файлы также осуществляется с помощью фильтра двойного перенаправления >>. Этот фильтр можно использовать для добавления любого вывода в файл.
Чтение файлов в пакетном скрипте выполняется с помощью команды цикла FOR для прохождения каждой строки, определенной в файле, который необходимо прочитать.
Для удаления файлов Batch Script предоставляет команду DEL.
Для переименования файлов Batch Script предоставляет команду REN или RENAME.
Для перемещения файлов Batch Script предоставляет команду MOVE.
Оператор канала (|) принимает выходные данные (по умолчанию STDOUT) одной команды и направляет их на вход (по умолчанию STDIN) другой команды.
Когда запускается пакетный файл, он дает вам возможность передать параметры командной строки, которые затем можно прочитать в программе для дальнейшей обработки.
Одним из ограничений аргументов командной строки является то, что он может принимать только аргументы до% 9. Давайте возьмем пример этого ограничения.
В Batch Script можно выполнять обычные операции с папками, которые ожидаются на любом языке программирования.
Создание папки выполняется с помощью команды MD (Make directory).
Список содержимого папки можно выполнить с помощью команды dir. Эта команда позволяет вам увидеть доступные файлы и каталоги в текущем каталоге.
Для удаления папок Batch Scripting предоставляет команду DEL.
Для переименования папок Batch Script предоставляет команду REN или RENAME.
Для перемещения папок Batch Script предоставляет команду MOVE.
Пакетный скрипт – Процесс
В этой главе мы обсудим различные процессы, включенные в пакетный скрипт.
Просмотр списка запущенных процессов
В Batch Script команду TASKLIST можно использовать для получения списка текущих запущенных процессов в системе.
Синтаксис
Определяет удаленную систему для подключения
[домен \] пользователь
Определяет пользовательский контекст, в котором должна выполняться команда.
Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.
Перечисляет все задачи, в настоящее время использующие имя exe / dll. Если имя модуля не указано, отображаются все загруженные модули.
Отображает службы, размещенные в каждом процессе.
Отображает подробную информацию о задаче.
Отображает набор задач, которые соответствуют заданным критериям, указанным фильтром.
Определяет формат вывода. Допустимые значения: «TABLE», «LIST», «CSV».
Указывает, что заголовок столбца не должен отображаться в выходных данных. Действительно только для форматов “TABLE” и “CSV”.
Определяет удаленную систему для подключения
[домен \] пользователь
Определяет пользовательский контекст, в котором должна выполняться команда.
Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.
Перечисляет все задачи, в настоящее время использующие имя exe / dll. Если имя модуля не указано, отображаются все загруженные модули.
Отображает службы, размещенные в каждом процессе.
Отображает подробную информацию о задаче.
Отображает набор задач, которые соответствуют заданным критериям, указанным фильтром.
Определяет формат вывода. Допустимые значения: «TABLE», «LIST», «CSV».
Указывает, что заголовок столбца не должен отображаться в выходных данных. Действительно только для форматов “TABLE” и “CSV”.
Примеры
Приведенная выше команда получит список всех процессов, запущенных в вашей локальной системе. Ниже приведен снимок вывода, который отображается при запуске вышеуказанной команды. Как видно из следующего вывода, вы не только получаете различные процессы, запущенные в вашей системе, вы также получаете использование памяти каждым процессом.
Приведенная выше команда берет вывод, отображаемый в списке задач, и сохраняет его в файле process.txt.
Приведенная выше команда извлекает только те процессы, чья память превышает 40 МБ. Ниже приведен пример вывода, который можно отобразить.
Убить определенный процесс
Позволяет пользователю, работающему под управлением Microsoft Windows XP professional, Windows 2003 или более поздней версии, завершить задачу из командной строки Windows по идентификатору процесса (PID) или имени изображения. Команда, используемая для этой цели, является командой TASKILL.
Синтаксис
Определяет удаленную систему для подключения
[домен \] пользователь
Определяет пользовательский контекст, в котором должна выполняться команда.
Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.
Применяет фильтр для выбора набора задач. Позволяет использовать «*». ех. imagename eq acme * См. фильтры ниже для получения дополнительной информации и примеров.
Указывает PID процесса, который должен быть завершен. Используйте TaskList, чтобы получить PID.
Определяет имя изображения процесса, который будет завершен. Подстановочный знак «*» можно использовать для указания всех задач или имен изображений.
Завершает указанный процесс и любые дочерние процессы, которые были запущены им.
Указывает на принудительное завершение процесса (ов).
Определяет удаленную систему для подключения
[домен \] пользователь
Определяет пользовательский контекст, в котором должна выполняться команда.
Задает пароль для данного пользовательского контекста. Запрашивает ввод, если опущен.
Применяет фильтр для выбора набора задач. Позволяет использовать «*». ех. imagename eq acme * См. фильтры ниже для получения дополнительной информации и примеров.
Указывает PID процесса, который должен быть завершен. Используйте TaskList, чтобы получить PID.
Определяет имя изображения процесса, который будет завершен. Подстановочный знак «*» можно использовать для указания всех задач или имен изображений.
Завершает указанный процесс и любые дочерние процессы, которые были запущены им.
Указывает на принудительное завершение процесса (ов).
Примеры
Приведенная выше команда убивает задачу открытия блокнота, если она открыта.
Приведенная выше команда убивает процесс, который имеет процесс 9214.
Начиная новый процесс
У сценариев DOS также есть возможность начать новый процесс. Это достигается с помощью команды СТАРТ.
Синтаксис
title – Текст для строки заголовка окна CMD (обязательно.)
путь – Начальный каталог.
команда – команда, командный файл или исполняемая программа для запуска.
параметры – параметры, переданные в команду.
title – Текст для строки заголовка окна CMD (обязательно.)
путь – Начальный каталог.
команда – команда, командный файл или исполняемая программа для запуска.
параметры – параметры, переданные в команду.
Ниже приведено описание параметров, которые могут быть представлены команде START.
Стартовое окно свернуто
Окно запуска развернуто.
Используйте приоритетный класс IDLE.
Используйте НОРМАЛЬНЫЙ класс приоритета.
Используйте ABOVENORMAL приоритетный класс.
Используйте НИЖЕ НОРМАЛЬНЫЙ приоритетный класс.
Используйте ВЫСОКИЙ приоритетный класс.
/ АВТОКОРРЕКЦИЯ
Используйте REALTIME приоритетный класс.
Стартовое окно свернуто
Окно запуска развернуто.
Используйте приоритетный класс IDLE.
Используйте НОРМАЛЬНЫЙ класс приоритета.
Используйте ABOVENORMAL приоритетный класс.
Используйте НИЖЕ НОРМАЛЬНЫЙ приоритетный класс.
Используйте ВЫСОКИЙ приоритетный класс.
/ АВТОКОРРЕКЦИЯ
Используйте REALTIME приоритетный класс.
Примеры
Приведенная выше команда запустит пакетный скрипт test.bat в новом окне. Окна начнутся в свернутом режиме и также будут иметь название «Test Batch Script».
Приведенная выше команда фактически запустит Microsoft Word в другом процессе, а затем откроет файл TESTA.txt в MS Word.
Пакетный скрипт – псевдонимы
Псевдонимы – это создание ярлыков или ключевых слов для существующих команд. Предположим, что если мы хотим выполнить приведенную ниже команду, которая является ничем иным, как командой вывода списка каталогов с параметром / w, чтобы не отобразить все необходимые сведения в списке каталогов.
Предположим, нам нужно создать ярлык для этой команды следующим образом.
Когда мы хотим выполнить команду dir / w , мы можем просто ввести слово dw . Слово «dw» теперь стало псевдонимом команды Dir / w.
Создание псевдонима
Псевдонимы управляются с помощью команды doskey .
Синтаксис
macroname – короткое имя для макроса.
текст – команды, которые вы хотите вспомнить.
macroname – короткое имя для макроса.
текст – команды, которые вы хотите вспомнить.
Ниже приведено описание параметров, которые могут быть представлены команде DOSKEY.
Устанавливает новую копию Doskey
/ LISTSIZE = размер
Устанавливает размер буфера истории команд.
Отображает все макросы Doskey.
/ MACROS: ALL
Отображает все макросы Doskey для всех исполняемых файлов, в которых есть макросы Doskey.
/ MACROS: exename
Отображает все макросы Doskey для данного исполняемого файла.
Отображает все команды, хранящиеся в памяти.
Указывает, что вводимый вами новый текст вставляется в старый текст.
/ Overstrike
Указывает, что новый текст заменяет старый.
/ EXENAME = exename
Определяет исполняемый файл.
/ MACROFILE = имя файла
Указывает файл макросов для установки.
имя_макроса
Указывает имя для макроса, который вы создаете.
Указывает команды, которые вы хотите записать.
Устанавливает новую копию Doskey
/ LISTSIZE = размер
Устанавливает размер буфера истории команд.
Отображает все макросы Doskey.
/ MACROS: ALL
Отображает все макросы Doskey для всех исполняемых файлов, в которых есть макросы Doskey.
/ MACROS: exename
Отображает все макросы Doskey для данного исполняемого файла.
Отображает все команды, хранящиеся в памяти.
Указывает, что вводимый вами новый текст вставляется в старый текст.
/ Overstrike
Указывает, что новый текст заменяет старый.
/ EXENAME = exename
Определяет исполняемый файл.
/ MACROFILE = имя файла
Указывает файл макросов для установки.
имя_макроса
Указывает имя для макроса, который вы создаете.
Указывает команды, которые вы хотите записать.
пример
Создайте новый файл с именем keys.bat и введите в него следующие команды. Приведенные ниже команды создают два псевдонима, один if для команды cd, которая автоматически переходит в каталог с именем test. А другой для команды dir.
Как только вы выполните команду, вы сможете запустить эти псевдонимы в командной строке.
Выход
На следующем снимке экрана показано, что после выполнения созданного выше пакетного файла вы можете свободно ввести команду ‘d’, и она выдаст вам список каталогов, который означает, что ваш псевдоним был создан.

Удаление псевдонима
Псевдоним или макрос можно удалить, установив значение макроса в NULL.
пример
В приведенном выше примере мы сначала устанавливаем макрос d в d = dir. После чего мы устанавливаем его в NULL. Поскольку мы установили значение d в NULL, макрос d будет удален.
Замена псевдонима
Псевдоним или макрос можно заменить, установив значение макроса в новое требуемое значение.
пример
В приведенном выше примере мы сначала устанавливаем макрос d в d = dir. После чего мы устанавливаем его в dir / w. Поскольку мы установили для значения d новое значение, псевдоним d теперь будет принимать новое значение.
Пакетный скрипт – Устройства
В Windows появилась улучшенная библиотека, которую можно использовать в пакетном скрипте для работы с устройствами, подключенными к системе. Это называется консолью устройства – DevCon.exe.
Разработчики и тестировщики драйверов Windows могут использовать DevCon для проверки правильности установки и настройки драйвера, включая соответствующие INF-файлы, стек драйверов, файлы драйверов и пакет драйверов. Вы также можете использовать команды DevCon (включить, отключить, установить, запустить, остановить и продолжить) в сценариях для тестирования драйвера. DevCon – это инструмент командной строки, который выполняет функции управления устройствами на локальных и удаленных компьютерах.
Отображение информации о драйвере и устройстве DevCon может отображать следующие свойства драйверов и устройств на локальных компьютерах и удаленных компьютерах (под управлением Windows XP и более ранних версий) –
Аппаратные идентификаторы, совместимые идентификаторы и идентификаторы экземпляров устройства. Эти идентификаторы подробно описаны в строках идентификации устройства.
Классы настройки устройства.
Устройства в классе настройки устройства.
INF-файлы и файлы драйверов устройств.
Детали пакетов драйверов.
Ожидаемый стек драйверов.
Пакеты драйверов сторонних производителей в магазине драйверов.
Поиск устройств DevCon может выполнять поиск установленных и удаленных устройств на локальном или удаленном компьютере по идентификатору оборудования, идентификатору экземпляра устройства или классу настройки устройства.
Изменение настроек устройства DevCon может изменять состояние или конфигурацию устройств Plug and Play (PnP) на локальном компьютере следующими способами:
Обновление драйверов (интерактивное и неинтерактивное).
Установите устройство (создайте devnode и установите программное обеспечение).
Удалите устройство из дерева устройств и удалите его стек устройств.
Rescan для устройств Plug and Play.
Добавьте, удалите и измените порядок аппаратных идентификаторов устройств с корневым перечислением.
Измените верхний и нижний драйверы фильтра для класса настройки устройства.
Добавляйте и удаляйте сторонние пакеты драйверов из хранилища драйверов.
Аппаратные идентификаторы, совместимые идентификаторы и идентификаторы экземпляров устройства. Эти идентификаторы подробно описаны в строках идентификации устройства.
Классы настройки устройства.
Устройства в классе настройки устройства.
INF-файлы и файлы драйверов устройств.
Детали пакетов драйверов.
Ожидаемый стек драйверов.
Пакеты драйверов сторонних производителей в магазине драйверов.
Поиск устройств DevCon может выполнять поиск установленных и удаленных устройств на локальном или удаленном компьютере по идентификатору оборудования, идентификатору экземпляра устройства или классу настройки устройства.
Изменение настроек устройства DevCon может изменять состояние или конфигурацию устройств Plug and Play (PnP) на локальном компьютере следующими способами:
Обновление драйверов (интерактивное и неинтерактивное).
Установите устройство (создайте devnode и установите программное обеспечение).
Удалите устройство из дерева устройств и удалите его стек устройств.
Rescan для устройств Plug and Play.
Добавьте, удалите и измените порядок аппаратных идентификаторов устройств с корневым перечислением.
Измените верхний и нижний драйверы фильтра для класса настройки устройства.
Добавляйте и удаляйте сторонние пакеты драйверов из хранилища драйверов.
DevCon (DevCon.exe) включается при установке WDK, Visual Studio и Windows SDK для настольных приложений. DevCon.exe комплект доступен в следующих местах при установке.
Синтаксис
/ m: \\ computer – запускает команду на указанном удаленном компьютере. Обратный слеш обязателен.
/ r – условная перезагрузка. Перезагрузка системы после завершения операции, только если требуется перезагрузка, чтобы изменения вступили в силу.
команда – Определяет команду DevCon.
Для просмотра и отображения информации об устройствах на компьютере используйте следующие команды:
Для поиска информации об устройствах на компьютере используйте следующие команды –
Чтобы манипулировать устройством или изменить его конфигурацию, используйте следующие команды –
/ m: \\ computer – запускает команду на указанном удаленном компьютере. Обратный слеш обязателен.
/ r – условная перезагрузка. Перезагрузка системы после завершения операции, только если требуется перезагрузка, чтобы изменения вступили в силу.
команда – Определяет команду DevCon.
Для просмотра и отображения информации об устройствах на компьютере используйте следующие команды:
Для поиска информации об устройствах на компьютере используйте следующие команды –
Чтобы манипулировать устройством или изменить его конфигурацию, используйте следующие команды –
Примеры
Ниже приведены некоторые примеры использования команды DevCon.
Следующая команда использует операцию DevCon DriverFiles для получения списка имен файлов драйверов, которые используют устройства в системе. Команда использует подстановочный знак (*) для обозначения всех устройств в системе. Поскольку вывод является обширным, команда использует символ перенаправления (>) для перенаправления вывода в справочный файл driverfiles.txt.
Следующая команда использует операцию состояния DevCon, чтобы найти состояние всех устройств на локальном компьютере. Затем он сохраняет статус в файле status.txt для регистрации или последующего просмотра. Команда использует подстановочный знак (*) для представления всех устройств и символ перенаправления (>) для перенаправления вывода в файл status.txt.
Следующая команда включает все принтерные устройства на компьютере, указав класс настройки принтера в команде DevCon Enable. Команда включает параметр / r, который перезагружает систему, если это необходимо, чтобы включение было эффективным.
Следующая команда использует операцию DevCon Install для установки устройства клавиатуры на локальном компьютере. Команда включает полный путь к файлу INF для устройства (keyboard.inf) и идентификатор оборудования (* PNP030b).
Следующая команда просканирует компьютер на наличие новых устройств.
Следующая команда повторно проверит компьютер на наличие новых устройств.
Пакетный скрипт – Реестр
Реестр является одним из ключевых элементов в системе Windows. Он содержит много информации о различных аспектах операционной системы. Почти все приложения, установленные в системе Windows, взаимодействуют с реестром в той или иной форме.
Реестр содержит два основных элемента: ключи и значения. Ключи реестра – это объекты-контейнеры, похожие на папки. Значения реестра – это неконтейнерные объекты, похожие на файлы. Ключи могут содержать значения или дополнительные ключи. На ключи ссылается синтаксис, аналогичный путевым именам Windows, с использованием обратной косой черты для обозначения уровней иерархии.
В этой главе рассматриваются различные функции, такие как запрос значений, добавление, удаление и редактирование значений из реестра.
Чтение из реестра осуществляется с помощью команды REG QUERY.
Добавление в реестр осуществляется с помощью команды REG ADD.
Удаление из реестра производится с помощью команды REG DEL.
Копирование из реестра выполняется с помощью команды REG COPY.
Сравнение разделов реестра производится с помощью команды REG COMPARE.
Чтение из реестра осуществляется с помощью команды REG QUERY.
Добавление в реестр осуществляется с помощью команды REG ADD.
Удаление из реестра производится с помощью команды REG DEL.
Копирование из реестра выполняется с помощью команды REG COPY.
Сравнение разделов реестра производится с помощью команды REG COMPARE.
Пакетный скрипт – Сеть
Пакетный скрипт имеет возможность работать с сетевыми настройками. Команда NET используется для обновления, исправления или просмотра сети или сетевых настроек. В этой главе рассматриваются различные параметры, доступные для команды net.
Просмотрите текущий пароль и ограничения входа в систему для компьютера.
Отображает ваши текущие настройки сервера или рабочей группы.
Добавляет или удаляет компьютер, подключенный к контроллеру домена Windows.
Эта команда может быть использована для следующих
Просмотр сведений о конкретной учетной записи пользователя.
Эта команда используется для остановки и запуска определенной службы.
Отображение сетевой статистики рабочей станции или сервера.
Подключает или отключает компьютер от общего ресурса или отображает информацию о ваших подключениях.
Просмотрите текущий пароль и ограничения входа в систему для компьютера.
Отображает ваши текущие настройки сервера или рабочей группы.
Добавляет или удаляет компьютер, подключенный к контроллеру домена Windows.
Эта команда может быть использована для следующих
Просмотр сведений о конкретной учетной записи пользователя.
Эта команда используется для остановки и запуска определенной службы.
Отображение сетевой статистики рабочей станции или сервера.
Подключает или отключает компьютер от общего ресурса или отображает информацию о ваших подключениях.
Пакетный скрипт – Печать
Печать также можно контролировать из Пакетного сценария с помощью команды NET PRINT.
Синтаксис
Где / D: устройство – указывает устройство печати.
пример
Приведенная выше команда напечатает файл example.txt на параллельный порт lpt1.
Управление принтером из командной строки
Начиная с Windows 2000, многие, но не все, параметры принтера можно настроить из командной строки Windows с помощью PRINTUI.DLL и RUNDLL32.EXE.
Синтаксис
Где некоторые из доступных вариантов следующие –
/ DL – Удалить локальный принтер.
/ dn – удалить подключение к сетевому принтеру.
/ dd – удалить драйвер принтера.
/ e – Показать настройки печати.
/ f [файл] – либо файл inf, либо выходной файл.
/ F [файл] – расположение INF-файла, от которого может зависеть INF-файл, указанный в / f.
/ ia – установить драйвер принтера с помощью файла inf.
/ id – установить драйвер принтера с помощью мастера добавления драйвера принтера.
/ if – установить принтер с помощью файла inf.
/ ii – Установите принтер с помощью мастера добавления принтера с помощью файла inf.
/ il – Установить принтер с помощью мастера добавления принтера.
/ in – Добавить подключение к сетевому принтеру.
/ ip – установить принтер с помощью мастера установки сетевого принтера.
/ k – Печать тестовой страницы на указанном принтере, не может сочетаться с командой при установке принтера.
/ l [путь] – Путь источника драйвера принтера.
/ m [модель] – название модели драйвера принтера.
/ n [имя] – имя принтера.
/ o – Показать представление очереди принтера.
/ p – Показать свойства принтера.
/ Ss – сохранить настройки принтера в файл.
/ Sr – восстановить настройки принтера из файла.
/ y – установить принтер по умолчанию.
/ Xg – Получить настройки принтера.
/ Xs – установить настройки принтера.
/ DL – Удалить локальный принтер.
/ dn – удалить подключение к сетевому принтеру.
/ dd – удалить драйвер принтера.
/ e – Показать настройки печати.
/ f [файл] – либо файл inf, либо выходной файл.
/ F [файл] – расположение INF-файла, от которого может зависеть INF-файл, указанный в / f.
/ ia – установить драйвер принтера с помощью файла inf.
/ id – установить драйвер принтера с помощью мастера добавления драйвера принтера.
/ if – установить принтер с помощью файла inf.
/ ii – Установите принтер с помощью мастера добавления принтера с помощью файла inf.
/ il – Установить принтер с помощью мастера добавления принтера.
/ in – Добавить подключение к сетевому принтеру.
/ ip – установить принтер с помощью мастера установки сетевого принтера.
/ k – Печать тестовой страницы на указанном принтере, не может сочетаться с командой при установке принтера.
/ l [путь] – Путь источника драйвера принтера.
/ m [модель] – название модели драйвера принтера.
/ n [имя] – имя принтера.
/ o – Показать представление очереди принтера.
/ p – Показать свойства принтера.
/ Ss – сохранить настройки принтера в файл.
/ Sr – восстановить настройки принтера из файла.
/ y – установить принтер по умолчанию.
/ Xg – Получить настройки принтера.
/ Xs – установить настройки принтера.
Тестирование, если принтер существует
Могут быть случаи, когда вы можете быть подключены к сетевому принтеру вместо локального принтера. В таких случаях всегда полезно проверить, существует ли принтер в первую очередь перед печатью.
Существование принтера можно оценить с помощью файла RUNDLL32.EXE PRINTUI.DLL, который используется для управления большинством настроек принтера.
пример
Приведенная выше команда сделает следующее –
Сначала будет установлено имя принтера и имя файла, в котором будут храниться настройки принтера.
Команды RUNDLL32.EXE PRINTUI.DLL будут использоваться для проверки, действительно ли принтер существует, путем отправки параметров конфигурации файла в файл Prt.txt.
Сначала будет установлено имя принтера и имя файла, в котором будут храниться настройки принтера.
Команды RUNDLL32.EXE PRINTUI.DLL будут использоваться для проверки, действительно ли принтер существует, путем отправки параметров конфигурации файла в файл Prt.txt.
Пакетный скрипт – отладка
Очень часто вы можете столкнуться с проблемами при запуске пакетных файлов, и чаще всего вам потребуется отладка ваших пакетных файлов тем или иным способом, чтобы определить проблему с самим пакетным файлом. Ниже приведены некоторые методы, которые могут помочь в отладке файлов Batch Script.
Сообщения об ошибках
Чтобы обнаружить источник сообщения, выполните следующие действия.
Шаг 1 – УДАЛИТЕ строку @ECHO OFF, т.е. REM @ECHO OFF или :: @ECHO OFF.
Шаг 2 – Запустите командный файл с необходимыми параметрами командной строки, перенаправив весь вывод в файл журнала для последующего сравнения.
Шаг 3 – Найдите в файле batch.log сообщения об ошибках.
Шаг 4 – Проверьте предыдущую строку на наличие каких-либо неожиданных или недействительных команд, параметров командной строки или значений; обратите особое внимание на значения любых переменных среды, используемых в команде.
Шаг 5 – Исправьте ошибку и повторяйте этот процесс, пока все сообщения об ошибках не исчезнут.
Сложные Командные Линии
Другим распространенным источником ошибок являются неправильно перенаправленные команды, такие как, например, «вложенные» команды FIND или FINDSTR с неверными строками поиска, иногда внутри цикла FOR / F.
Чтобы проверить правильность этих сложных команд, выполните следующие действия:
Шаг 1 – Вставьте «строки проверки команд» непосредственно перед строкой, которая использует комплексный набор команд.
Ниже приведен пример, в котором команда ECHO вставлена, чтобы отметить, где заканчивается вывод первой команды TYPE и начинается следующая.
Шаг 2 – Следуйте процедуре, чтобы найти источники сообщений об ошибках, описанных выше.
Шаг 3 – Обратите особое внимание на вывод «упрощенных» командных строк: выводится ли ожидаемый формат? Является ли значение токена или позиция ожидаемой?
подпрограммы
Подпрограммы, генерирующие сообщения об ошибках, создают дополнительную «проблему» в поиске причины ошибки, так как они могут вызываться несколько раз в одном пакетном файле.
Чтобы выяснить, что вызывает неправильный вызов подпрограммы, выполните следующие действия:
Шаг 1 – Добавить и сбросить переменную счетчика в начале скрипта –
Шаг 2 – Увеличивайте счетчик каждый раз, когда вызывается подпрограмма, вставляя следующую строку в начале подпрограммы
Шаг 3 – Вставьте еще одну строку сразу после приращения счетчика, содержащую только команду SET; это перечислит все переменные окружения и их значения.
Шаг 4 – Следуйте процедуре, чтобы найти источники сообщений об ошибках, описанных выше.
Версии Windows
Если вы собираетесь распространять свои пакетные файлы на другие компьютеры, на которых может работать или не работать одна и та же версия Windows, вам необходимо протестировать свои пакетные файлы в максимально возможном количестве версий Windows.
В следующем примере показано, как проверить различные версии операционной системы, чтобы проверить соответствующие версии Windows.
Пакетный скрипт – логирование
Вход в Batch Script возможен с помощью команды перенаправления.
Синтаксис
пример
Создайте файл с именем test.bat и введите в него следующую команду.
Приведенная выше команда имеет ошибку, потому что опция для команды net statistics задана неверно.