Как написать скрипт для командной строки windows

Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.

BAT-файл — это последовательность команд для интерпретатора командной строки в виде текстового файла с расширением .bat или .cmd. Основное предназначение пакетных файлов — автоматизация рутинных действий пользователя компьютера.

Название BAT появилось от английского batch — пакетная обработка. В истории продуктов Microsoft пакетные файлы существовали с первой версии MS-DOS в 80-х годах и позже успешно интегрировались в Microsoft Windows. В MS-DOS командным интерпретатором выступает COMMAND.COM, а начиная с Windows NT и до сих пор используется CMD.EXE.

Интерпретатор COMMAND.COM принимает файлы с расширением .BAT. Расширение .CMD создано для интерпретатора CMD.EXE с целью различать файлы для «старого» и «нового» интерпретаторов. CMD.EXE корректно обрабатывает оба расширения.

Интерпретатор CMD.EXE является частью современных операционных систем семейства Microsoft Windows, несмотря на отсутствие развития с начала 2000-х.

Основы взаимодействия с bat-файлами

Пакетный файл bat — это текстовый документ со специальным расширением. Для создания своего первого bat-файла достаточно «Блокнота», который доступен в операционной системе. Для повышения удобства написания и поддержки bat-файлов рекомендуем использовать Notepad++ или любой другой текстовый редактор с подсветкой синтаксиса. 

Создание bat-файлов

создание файла

Для создания пакетных файлов необходимо открыть текстовый редактор и в меню Файл выбрать Сохранить как….

сохранение в формате bat

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

расширения имен

Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.

Запуск bat-файлов

запуск от имени администратора

Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора

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

Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл. 

выполнение команды cmd

Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш Win + R, вписать cmd и нажать ОК.

окно интерпретатора

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

Вне зависимости от способа запуска откроется окно, которое может привлекать внимание и раздражать. Для запуска в «скрытом» режиме необходимо использовать другой скриптовой язык Microsoft Windows — VBScript.

По аналогии создаем файл с расширением .vbs и заполняем его следующими командами:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "С:путьдовашегоскрипта.bat" & Chr(34), 0
Set WshShell = Nothing

Для скрытого запуска следует запускать созданный файл, а не bat-файл. Скрытый запуск bat-файла актуален для автоматизации действий по расписанию, например, создание резервной копии. 

Запуск по расписанию

За выполнение действий по расписанию отвечает Планировщик заданий. Открываем меню Выполнить и запускаем программу taskschd.msc.

запуск по расписанию

Выбираем пункт Создать простую задач и заполняем параметры задания:

  • имя для простой идентификации,
  • периодичность и время запуска,
  • действие — Запустить программу,
  • программа или сценарий — путь до вашего .bat-файла или .vbs-файла, который запускает .bat-файл скрытно.

имя файла

триггер

повторяемость

запуск программы

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

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

Команды и синтаксис пакетных файлов

Командный интерпретатор выполняет команды из файла последовательно — строка за строкой. Исключение составляет только оператор GOTO, который «отправляет» к указанной строке. Командный интерпретатор выполняет два вида команд: встроенные команды и внешние исполняемые файлы.

Внешние исполняемые файлы — это любой исполняемый файл, то есть с расширением EXE, CMD или BAT, который доступен в операционной системе. Например, «Блокнот» — это исполняемый файл notepad.exe. Следующая команда приведет к запуску этого приложения с открытым файлом C:1.txt:

notepad.exe C:1.txt

Аргументом может быть не только путь, но и ключ — специальный аргумент, который начинается с символа слэш (/). У каждой программы свой «реестр» ключей и их значений.

Обратите внимание, что не все внешние команды «понимают» аргументы, переданные из интерпретатора командной строки. Например, исполняемый файл приложения калькулятор, calc.exe, игнорирует все аргументы командной строки. Внешним исполняемым файлом может быть в том числе другой bat-файл.

встроенные команды

Встроенные команды — это команды, которые являются частью интерпретатора командной строки. Полный список команд доступен по команде HELP. Данные команды не имеют отдельного исполняемого файла. 

Иногда в имени файла или каталога встречаются пробелы. Наиболее очевидный пример — каталог Program Files на диске C. В этом случае помогают кавычки. Их можно расставить различными способами. Например:

cd "C:Program Files123"
cd C:”Program Files”123

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

Оставлять комментарии при разработке — хороший тон. Так можно объяснить выполняемые действия и потенциальные ошибки. В пакетных файлах можно оставлять комментарии несколькими способами. 

Официальный способ — команда rem или два двоеточия.

rem Это первый комментарий
:: Это тоже комментарий

Перечисленные команды позволяют оставлять однострочные комментарии. Если хочется оставить развернутый многострочный комментарий, то прибегают к хитрости с командной GOTO.

goto start
===
Здесь можно оставить большой комментарий,
лицензию или даже ASCII-арт
===
:start

В конце комментария задаем имя метки, а в начале комментария выполняем команду GOTO c именем метки. Этот способ требует внимания, так как для каждого комментария должна быть своя метка, иначе выполнение bat-файла может отличаться от ожидания разработчика.

Совместимость с MS-DOS 

В старых ОС, таких как MS-DOS, было ограничение на отображение имени файлов. На экран выводилось восемь символов имени, точка и три символа расширения. Если имя файла превышало по длине восемь символов, то имя файла отображалось по следующей схеме:

<первые шесть символов имени>~<порядковый номер>

Например, каталог Program Files выглядит следующим образом:

Progra~1

В современных операционных системах такое отображение не применяется, но CMD.EXE до сих пор поддерживает такие запросы к файлам и каталогам.

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

Выберите подходящий из более 100 готовых конфигураций.

Подобрать сервер

Примеры bat-файлов

Рассмотрим несколько примеров bat-файлов. Начнем с базовых команд.

Обновление IP-адреса

Представим простой пример: необходимо обновить аренду IP-адресов на всех сетевых интерфейсах. В командной строке это делается одной командой:

ipconfig /renew

Данная команда генерирует много текстового вывода, который может испугать неподготовленного пользователя. Сама команда также может быть непривлекательной. Поэтому отключим отображение команды и перенаправим вывод выполнения в «никуда». Вместо слова NUL может быть любое имя или путь. Тогда вывод будет перенаправлен в указанный файл.

rem Отключаем отображение команд. Символ @ отключает отображение текущей команды
@echo off

rem Переводим вывод выполнения в устройство NUL, вывод исчезнет
ipconfig /renew > NUL

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

@echo off
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.

rem Эта команда остановит выполнение до тех пор, пока пользователь не нажмет любую клавишу
pause

Скорее всего данный скрипт выведет набор непонятных символов вместо сообщения. Дело в том, что в русскоязычных ОС Windows по умолчанию в CMD.EXE используется кодировка CP866. Блокнот сохраняет в CP1251 (Windows-1251), а Notepad++ — в UTF-8. Для решения проблемы необходимо сменить кодировку интерпретатора командой chcp или сохранить bat-файл в кодировке интерпретатора.

rem Смена кодировки на Windows-1251
chcp 1251 > NUL
rem Смена кодировки на UTF-8
chcp 65001 > NUL

Я сохранил файл в кодировке UTF-8 и итоговый скрипт получился таким:

@echo off
chcp 65001 > NUL
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.
pause

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

Перейдем к более жизненной ситуации — создание резервной копии (backup) каталога. Предположим, что каждый архив должен иметь в названии дату создания копии. Создадим каталог, имя которого — текущая дата. Текущая дата хранится в переменной DATE. Для обращения к переменным название переменной помещается между знаками процента.

mkdir %DATE%
cd %DATE%

Копирование файлов в текущий каталог производится командой COPY.


rem файлы 1.txt и 2.txt будут скопированы в текущую папку
COPY C:1.txt C:2.txt .

rem файл 3.txt будет сохранен в текущую папку как example.txt
COPY C:1.txt .example.txt

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

rem Имя компьютера записывается в файл computer.txt
hostname > computer.txt

rem Список файлов в текущем каталоге записывается в files.txt
dir . > files.txt

Обычно резервные копии хранят в zip- или rar-архивах. Из командной строки отлично управляется архиватор 7z.

cd ..
7z -tzip a backup.zip %DATE% 

Переименование файлов

Переименование файлов в Windows производится командой RENAME. Однако эта команда имеет свои особенности. 

Во-первых, переименование возможно только в рамках одного диска и одного каталога. Между каталогами одного диска допустимо перемещение, а между разными дисками — только копирование.


rename abc.txt cba.txt

Во-вторых, возможно переименование по маске. Допустим, есть список фотографий photo000.jpeg, photo001.jpeg и так далее. Нужно сменить префикс с photo на mobile.

rename photo* mobile*

Если в текущем каталоге есть другие файлы с префиксом photo, а переименовать надо только изображения с расширением jpeg, то команда модифицируется:

rename photo*.jpeg mobile*.jpeg

Удаление файлов

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

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

rem Ищем все файлы с расширением jpeg в каталоге work
rem Ключ /r включает в поиск все подкаталоги в каталоге work
for /r work %%file in (*.jpeg) do (
   rem Выводим имя файла
   echo %%file

   delete %%i
)

Заключение

Командный интерпретатор CMD.EXE существует долгое время, но, даже несмотря на отсутствия развития, остается востребованным инструментом для автоматизации рутинных действий в операционной системе Microsoft Windows.

Дисклеймер

Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.

Что такое батники и с чем их едят

Пакетный файл или в простонародье батник — это файл, который запускает командную сроку или сокращенно cmd, которая построчно интерпретирует команды, записанные в нем. Подробнее смотрите на https://ru.wikipedia.org/wiki/Пакетный_файл.

Первая программа и основные команды

Чтобы сделать батник, нужно сначала создать текстовый файл с именем test и изменить расширение c .txt на .bat. О том, как можно это сделать, читайте здесь: https://remontka.pro/file-extensions. У вас должен появиться файл с такой иконкой:

test.bat

test.bat

Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем «Открыть». Должен открыться блокнот, пишем:

@echo off
echo Hello world!
pause

В 1-ой сроке («@echo off») префикс ‘@ ‘ означает, что команда не будет выведена на экран(попробуйте его убрать :-) ), сама же команда (echo) выводит текст следующий за ней(см. строку 2), НО, если подать строку «off», все последующие команды будут действовать так, как будто перед ними стоит префикс ‘@’, «echo on», соответственно, выключает этот режим. Чтобы вывести символ «%», его нужно дублировать, потом поймете почему :-), для вывода пустой строки поставьте «.» после «echo»
В 3-ей строке команда выводит строку «press any key to continue . . .» (если у вас русский язык — «Для продолжения нажмите любую клавишу . . .») и останавливает программу до нажатия любой клавиши.

Наводим красоту

Команда «rem»

не эта :)

не эта :)

не делает ничего и служит комментарием к коду

rem Это самая лучшая прога в мире!!!!!

Код включает русские символы и другие из ascii(например: «╬▓☼», можно скопировать с http://pascalguru.ru/psevdograf.html), иначе ascii символы превратятся в кракозябры:

chcp 65001

Следующий код код работает, как команда «pause», но ничего не выводит на экран и не реагирует на нажатие клавиш(я потом объясню, как это работает).

:m
goto m

А этот — меняет заголовок окна на «name»

Заголовок окна

Заголовок окна
title name

Эта команда меняет цвет фона и текста, вместо a и b можно поставить любые шестнадцатеричные цифры(команда не сработает если a = b) см. таблицу ниже. Запись c одной буквой «а» аналогично записи «0a»

color ab

Таблица

Таблица

Эта — досрочно завершает программу

exit

Переменные

Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C++ это именованный кусочек кода, имя которого заменяется на этот кусочек кода)

set a=Hello world

Если после «set» добавить флаг «/a» то:

  1. Переменной задастся значение выражения, а не его текст, например:

    set a=2+2
    > 2+2
    set /a a=2+2
    > 4
  2. Переменной можно присвоить ТОЛЬКО числовое значение

Чтобы обратиться к переменной, нужно окружить ее символами «%» (так %name%), пример кода:

set /a a=%b%+%b%
echo %a%

Подробнее о переменных

Если добавить флаг «/p», то выводиться значение после символа «=», а переменной задается введенное значение(запустите этот код:)

@echo off
set /p a=Enter str
echo %a%
pause

следующий код вырезает строку от символа номер «a» до символа номер «b» НЕ включительно(счет идет с нуля, отрицательные числа — счет с конца от единицы). Если аргумент один, то он присваивается числу «b», а «a» = 0

%str:~a,b%

следующий заменяет подстроки «a» в строке на строки «b»:

%str:a=b%

Циклы и условия

Цикл можно создать с помощью команды «for», синтаксис следующий:

for %%i in (a b c) do (
		cmd
)

или такой

for %%i in (a b c) do cmd

(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке

Если добавить флаг «/l», то переменная в первый раз будет равна «a». К ней каждый раз будет прибавляться «b», пока она не станет больше «c»(тут размер ДОЛЖЕН равняться 3)

запустите этот код, тут все наглядно

@echo off
chcp 65001
echo Начало
for /l %%i in (1 1 10) do echo %%i
echo Конец
pause

Команда if выполняет код, если условие верно (или если поставить not после if, когда НЕ верно), вот операторы сравнения:

P.S. строки нужно брать в кавычки «%str%»==»Hello»

equ(==)

=

neq

lss

<

leq

gtr

>

geq

пример кода:

@echo off
set /p a=Enter number
if a gtr 0 echo positive else
if a equ 0 echo 0 else echo negative
pause

в 3-ей строке, если «a» > 0 выводиться «положительный»(на английском :-) ), если равен — 0,в 4-ой если меньше — «отрицательный»

символ «» означает, что команда продолжается на следующей строке

Метки

Создадите файл start.bat в той же папке, где и test.bat, напишите в нем:

test.bat 2 2

Мы запустили батник, НО подали в него аргументы 2 и 2. Чтобы к ним обратиться, нужно написать %n, где «n» — номер аргумента, считая от одного(не от нуля), вот код, считающий сумму первого и второго аргумента (их может быть от нуля до 9-и):

@echo off
set /a res=%1+%2
echo res
pause

Метка — это именованное место в коде, она создается с помощью команды «:name»

А этот переходит на метку :m и продолжает выполнение, начиная с нее

rem куча кода
:m
rem куча кода
goto m
rem куча кода

И в завершение статьи, хочу сказать о команде call. Она превращает в последующей команде «%%» в «%», а переменные — на их значения. Пример использования:

call echo %%str:~%a%,%b%%%

If you have every used the Command Line, or CMD, interface in Windows, you probably have some idea of the powerful things it can do. Creating your own CMD scripts, you can do even more, but faster.

A CMD script does the same thing as if you typed commands into the CMD window. If you want to do something on a regular basis, such as telling Windows to turn off your computer after an hour, you can write a script and then you can activate the script whenever you want to run it.

Understanding CMD and Written Commands

In the early days of personal computing almost everything was done by typing command_s into a command line interface. If you wanted to open a program, you had to type the name of the program into the command line. Today, you can simply click or touch an icon on your screen to perform most actions. But Windows still accepts type-written commands in the CMD utility. You can write commands_ to open programs, add or change account permissions, back up files or get information about your computer using the CMD window.

Understanding CMD Scripts

The Command Prompt utility in Windows can be opened at any time, simply by typing «cmd» in the Windows Start menu. Here, you can type all sorts of commands to open programs, change settings and make tweaks to how Windows and its programs perform. In Microsoft’s long history of operating systems, CMD i_s a relative newcomer. In MS-DOS, before Windows was released, when you wanted to run a script, you would save it as a .bat file. While you can still save files with that extension today, most people use the .cmd extension._

Using a Script CMD to Open Notepad

To create and save a CMD switch, it’s best to use a basic text editor. Using a word processor like Microsoft Word makes saving the file a hassle. Notepad is much easier to use. So to demonstrate how CMD works, let’s open use it to open Notepad.

  1. Type CMD in the Windows Start menu and press Enter to open CMD.exe.
  2. Change the directory from your current username folder to the base directory by typing «cd» and pressing Enter. It should now read «C:>» before the blinking cursor.
  3. Type the following line and press Enter: start «c:windowssystem32» notepad.exe

As soon as you press Enter, you will see Notepad open. The command you entered has told Windows to start the notepad.exe program, which is located in the system32 folder, which is inside the Windows folder, on the C: drive. CMD commands are not case-sensitive so you can use lowercase or uppercase letters interchangeably.

Creating Your First Script CMD File

Now that Notepad is open, create your first CMD script file by typing the same line you used in the CMD window into notepad: start «c:windowssystem32» notepad.exe

Save the batch file to your desktop by selecting «Save As» from the File menu. Name the file «firstscript.cmd» and click «Save.» Notepad script commands must be saved with the .cmd extension, rather than the default .txt extension.

Double-click the new CMD file on your desktop. You will see the CMD window open for a fraction of a second and then close as Notepad is launched.

This is hardly a useful script, since a desktop shortcut does the same thing. To create something more useful, let’s edit the file so that it creates a new text file on your desktop listing all of your programs.

Using Echo and Echo Off

While the CMD window wasn’t open long enough to see it, by default it will always display the text that was entered in the CMD file when it runs. For longer scripts, this can be a nuisance, so it’s generally good form to turn this off by using the Echo Off command in the first line of the CMD file. By itself, Echo Off disables the display of any text that follows it. To make the Echo Off command apply to itself, put an @ symbol in front of it. Thus, your two-line CMD script would be:

@echo off

start «c:windowssystem32» notepad.exe

Creating a Text File Script

This CMD script will list all the files you have in your Program Files folder and put that list in a new text file.

  1. Open Notepad. Type «@echo off«in the first line and press Enter.
  2. In the second line, type: dir «C:Program Files» > list_of_files.txt
  3. Select «Save As» from the File menu and save the file as «program-list-script.cmd.»
  4. Double-click the new text file on your desktop to see the list of files and folders.

The text file will appear in the same folder where the script file itself is. So if the script file is on your desktop, the list-of-files.txt file will also appear on your desktop.

If you want to change the folder where the text file is placed, you can specify its own folder in the script. For example, if you want it to be placed in your Documents folder, use: dir «C:Program Files» > C:UsersDavidDocumentslist_of_files.txt

Creating a Systems Information Script

If you want to use a script to give you needed information, it’s not always necessary to produce a text document with a script. You can have the information posted directly in the CMD window.

The example script below will give you basic information about your computer, including the operating system and version number, the BIOS version, the total physical memory and your computer’s network address. To use the script, type or copy the lines below into a new Notepad file and save it with the .cmd file extension, such as «my_computer_info.cmd.»

In this example, ECHO OFF is used to prevent the CMD window from displaying the script.

The ECHO command is used to display specific text, as well as some equal signs (===) as lines to organize the information in sections.

To insert a comment for your own use — without it affecting the script or appearing in the CMD window — type two colons first. Anything in the same line following » :: « will be commented out from the script.

The PAUSE command directs the CMD program to stay open. Pressing any key on your keyboard will close the window.

@ECHO OFF

:: This CMD script provides you with your operating system, hardware and network information.

TITLE My System Info

ECHO Please wait… Gathering system information.

ECHO =========================

ECHO OPERATING SYSTEM

systeminfo | findstr /c:»OS Name»

systeminfo | findstr /c:»OS Version»

ECHO =========================

ECHO BIOS

systeminfo | findstr /c:»System Type»

ECHO =========================

ECHO MEMORY

systeminfo | findstr /c:»Total Physical Memory»

ECHO =========================

ECHO CPU

wmic cpu get name

ECHO =========================

ECHO NETWORK ADDRESS

ipconfig | findstr IPv4

ipconfig | findstr IPv6

PAUSE

Using Scripts to Shut Down Your Computer

Normally, when you shut down your computer, it happens instantaneously. Suppose, however, that you’re listening to an audiobook or watching a training video — and you know that you will fall asleep after an hour. You can use a CMD script to tell your computer to shut itself down, after a specified period of time, using the shutdown command.

When you use the shutdown command, you need to include two additional switches, or subcommands. The first tells the computer to either shutdown or restart. You can use either -s or — r. The second tells the computer how many seconds to wait before performing the command. For this you use -t, followed by the number of seconds.

To shutdown the computer in one second, use: shutdown -s -t 01

To restart the computer in eight seconds, use: shutdown -r -t 08

To shutdown the computer in two hours use: shutdown -s -t 7200

Backing Up Files With a CMD Script

If you find it tedious to back up your files to a second storage device, using a CMD script makes the process a breeze. For this, use the Robocopy command. For example, if you want to back up all of the files in your Documents folder onto a removable storage device, you can write the command in a CMD file and then — at the end of the day — simply double click the file to activate it.

The Robocopy command needs to know, first — which folder you want to copy and, second — where you want the copy placed. Both the source and destination need to be in quotation marks.

If you’re not certain what your drive letters are, open File Explorer and click on «My Computer.»

For example, if your User name is MyName, your Documents folder is in your C: drive and your Backup folder is in a removable storage D: drive, then the command would be:

robocopy D:UsersMyNameDocuments F:Backup /XA:H /W:0 /R:1 > F:Backupbackup.log

This example is a bit more complicated, since Robocopy offers you a lot of options.

D:UsersMyNameDocuments: the folder you want to back up.

F:Backup: the location of your Backup folder.

/XA:H: ignores hidden files.

/W:0: waits zero seconds between retries, instead of the default 30 seconds.

/R:1: retry only once if the file is locked.

> F:Backupbackup.log: create a backup log placed in the Backup folder.

Note that because this is a mirror backup, if you delete files from the source folder, they will be deleted from the Backup folder the next time you use the script. It would be a good idea to explore additional switches available for Robocopy, so that you ensure that you backup your files the way that works best for you.

If you have every used the Command Line, or CMD, interface in Windows, you probably have some idea of the powerful things it can do. Creating your own CMD scripts, you can do even more, but faster.

A CMD script does the same thing as if you typed commands into the CMD window. If you want to do something on a regular basis, such as telling Windows to turn off your computer after an hour, you can write a script and then you can activate the script whenever you want to run it.

Understanding CMD and Written Commands

In the early days of personal computing almost everything was done by typing command_s into a command line interface. If you wanted to open a program, you had to type the name of the program into the command line. Today, you can simply click or touch an icon on your screen to perform most actions. But Windows still accepts type-written commands in the CMD utility. You can write commands_ to open programs, add or change account permissions, back up files or get information about your computer using the CMD window.

Understanding CMD Scripts

The Command Prompt utility in Windows can be opened at any time, simply by typing «cmd» in the Windows Start menu. Here, you can type all sorts of commands to open programs, change settings and make tweaks to how Windows and its programs perform. In Microsoft’s long history of operating systems, CMD i_s a relative newcomer. In MS-DOS, before Windows was released, when you wanted to run a script, you would save it as a .bat file. While you can still save files with that extension today, most people use the .cmd extension._

Using a Script CMD to Open Notepad

To create and save a CMD switch, it’s best to use a basic text editor. Using a word processor like Microsoft Word makes saving the file a hassle. Notepad is much easier to use. So to demonstrate how CMD works, let’s open use it to open Notepad.

  1. Type CMD in the Windows Start menu and press Enter to open CMD.exe.
  2. Change the directory from your current username folder to the base directory by typing «cd» and pressing Enter. It should now read «C:>» before the blinking cursor.
  3. Type the following line and press Enter: start «c:windowssystem32» notepad.exe

As soon as you press Enter, you will see Notepad open. The command you entered has told Windows to start the notepad.exe program, which is located in the system32 folder, which is inside the Windows folder, on the C: drive. CMD commands are not case-sensitive so you can use lowercase or uppercase letters interchangeably.

Creating Your First Script CMD File

Now that Notepad is open, create your first CMD script file by typing the same line you used in the CMD window into notepad: start «c:windowssystem32» notepad.exe

Save the batch file to your desktop by selecting «Save As» from the File menu. Name the file «firstscript.cmd» and click «Save.» Notepad script commands must be saved with the .cmd extension, rather than the default .txt extension.

Double-click the new CMD file on your desktop. You will see the CMD window open for a fraction of a second and then close as Notepad is launched.

This is hardly a useful script, since a desktop shortcut does the same thing. To create something more useful, let’s edit the file so that it creates a new text file on your desktop listing all of your programs.

Using Echo and Echo Off

While the CMD window wasn’t open long enough to see it, by default it will always display the text that was entered in the CMD file when it runs. For longer scripts, this can be a nuisance, so it’s generally good form to turn this off by using the Echo Off command in the first line of the CMD file. By itself, Echo Off disables the display of any text that follows it. To make the Echo Off command apply to itself, put an @ symbol in front of it. Thus, your two-line CMD script would be:

@echo off

start «c:windowssystem32» notepad.exe

Creating a Text File Script

This CMD script will list all the files you have in your Program Files folder and put that list in a new text file.

  1. Open Notepad. Type «@echo off«in the first line and press Enter.
  2. In the second line, type: dir «C:Program Files» > list_of_files.txt
  3. Select «Save As» from the File menu and save the file as «program-list-script.cmd.»
  4. Double-click the new text file on your desktop to see the list of files and folders.

The text file will appear in the same folder where the script file itself is. So if the script file is on your desktop, the list-of-files.txt file will also appear on your desktop.

If you want to change the folder where the text file is placed, you can specify its own folder in the script. For example, if you want it to be placed in your Documents folder, use: dir «C:Program Files» > C:UsersDavidDocumentslist_of_files.txt

Creating a Systems Information Script

If you want to use a script to give you needed information, it’s not always necessary to produce a text document with a script. You can have the information posted directly in the CMD window.

The example script below will give you basic information about your computer, including the operating system and version number, the BIOS version, the total physical memory and your computer’s network address. To use the script, type or copy the lines below into a new Notepad file and save it with the .cmd file extension, such as «my_computer_info.cmd.»

In this example, ECHO OFF is used to prevent the CMD window from displaying the script.

The ECHO command is used to display specific text, as well as some equal signs (===) as lines to organize the information in sections.

To insert a comment for your own use — without it affecting the script or appearing in the CMD window — type two colons first. Anything in the same line following » :: « will be commented out from the script.

The PAUSE command directs the CMD program to stay open. Pressing any key on your keyboard will close the window.

@ECHO OFF

:: This CMD script provides you with your operating system, hardware and network information.

TITLE My System Info

ECHO Please wait… Gathering system information.

ECHO =========================

ECHO OPERATING SYSTEM

systeminfo | findstr /c:»OS Name»

systeminfo | findstr /c:»OS Version»

ECHO =========================

ECHO BIOS

systeminfo | findstr /c:»System Type»

ECHO =========================

ECHO MEMORY

systeminfo | findstr /c:»Total Physical Memory»

ECHO =========================

ECHO CPU

wmic cpu get name

ECHO =========================

ECHO NETWORK ADDRESS

ipconfig | findstr IPv4

ipconfig | findstr IPv6

PAUSE

Using Scripts to Shut Down Your Computer

Normally, when you shut down your computer, it happens instantaneously. Suppose, however, that you’re listening to an audiobook or watching a training video — and you know that you will fall asleep after an hour. You can use a CMD script to tell your computer to shut itself down, after a specified period of time, using the shutdown command.

When you use the shutdown command, you need to include two additional switches, or subcommands. The first tells the computer to either shutdown or restart. You can use either -s or — r. The second tells the computer how many seconds to wait before performing the command. For this you use -t, followed by the number of seconds.

To shutdown the computer in one second, use: shutdown -s -t 01

To restart the computer in eight seconds, use: shutdown -r -t 08

To shutdown the computer in two hours use: shutdown -s -t 7200

Backing Up Files With a CMD Script

If you find it tedious to back up your files to a second storage device, using a CMD script makes the process a breeze. For this, use the Robocopy command. For example, if you want to back up all of the files in your Documents folder onto a removable storage device, you can write the command in a CMD file and then — at the end of the day — simply double click the file to activate it.

The Robocopy command needs to know, first — which folder you want to copy and, second — where you want the copy placed. Both the source and destination need to be in quotation marks.

If you’re not certain what your drive letters are, open File Explorer and click on «My Computer.»

For example, if your User name is MyName, your Documents folder is in your C: drive and your Backup folder is in a removable storage D: drive, then the command would be:

robocopy D:UsersMyNameDocuments F:Backup /XA:H /W:0 /R:1 > F:Backupbackup.log

This example is a bit more complicated, since Robocopy offers you a lot of options.

D:UsersMyNameDocuments: the folder you want to back up.

F:Backup: the location of your Backup folder.

/XA:H: ignores hidden files.

/W:0: waits zero seconds between retries, instead of the default 30 seconds.

/R:1: retry only once if the file is locked.

> F:Backupbackup.log: create a backup log placed in the Backup folder.

Note that because this is a mirror backup, if you delete files from the source folder, they will be deleted from the Backup folder the next time you use the script. It would be a good idea to explore additional switches available for Robocopy, so that you ensure that you backup your files the way that works best for you.

Batch (.bat) файл — это инструмент, который сэкономит вам не один десяток часов рабочего времени. Узнайте сейчас как использовать пакетный файл на практике.

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

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


Содержание статьи:

  • Что такое BAT файл?
  • В чем польза BAT файла?
  • Режимы BAT файла
  • Как запустить BAT файл в Windows 10?
  • Как создать BAT файл?
    • Основы создания BAT файлов
    • Руководство по созданию BAT файла
    • Мониторинг систем с помощью BAT файла
    • Модификация BAT файлов


Что такое BAT файл?

Вы, должно быть, уже в курсе о существовании такой утилиты как “Командная строка” Windows, или CMD. Она работает путем ввода команд в качестве входных данных и обрабатывает их, проводя нужные операции с компьютером. Тем не менее, несмотря на всю полезность инструмента, командная строка устраивает далеко не всех. Сложность утилиты и высокий порог вхождения делают ее “последним средством спасения Windows”.

Free Download for PC

Чтобы упростить процесс работы и сделать его более быстрым, Microsoft ввели посредника между “человеком” и “машиной”. Этим посредником стал пакетный файл (batch file). Запущенный на компьютере документ автоматически выполняет команды в CMD, ограждая пользователя от собственноручной работы. Процесс автоматизации назван пакетным сценарием (batch script).

Доступные форматы BAT файла:

  • .bat
  • .cmd
  • .btm

Вне зависимости от того какой формат выбран при создании документа, функции от этого не изменятся.

В чем польза BAT файла?

Автоматизация. Если раньше вам приходилось долго и нудно “вбивать” сложные коды в окно командной строки, пришло время расслабиться! BAT файл экономит время пользователя не только при работе с CMD, но и при взаимодействии с другими системами ПК. Например, вы можете запланировать выключение компьютера через определенный промежуток времени. Этот способ применения пакетного файла хорошо подойдет геймерам, ставящим установку игру на ночь. Запланируйте отключение системы к моменту завершения установки и не опасайтесь за перерасход электроэнергии.

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

При создании BAT файла используется петля (for), условный оператор (if) и оператор управления (goto). Документ запускается либо с помощью командной строки, либо с помощью другого пакетного файла при использовании команды CALL.

Режимы BAT файла

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

Другой режим называется пакетным (batch mode). Он работает в классическом стиле и самостоятельно выполняет запрограммированные функции.

Режимы пакетного файла:

  • Интерактивный.

    Полуавтоматический режим. Программа может запрашивать подтверждение операций.
  • Пакетный.

    Полная автоматизация работы.

Используйте разные режимы в зависимости от ситуации.

Как запустить BAT файл в Windows 10?

Основной способ запуска пакетного файла — двойной щелчок по его иконке. Тем не менее, вы можете его и открыть и другим методом — с помощью командной строки.

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

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

  • Откройте директорию в которой лежит пакетный файл.
  • Определите название файла.
  • Откройте командную строку.
  • Введите название документа с его расширением.

    Например: HelloWorld.bat

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

Как создать BAT файл?

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

Основы создания BAT файлов

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

Базовые команды:

  • title

    Используется для создания заголовка. Отображается в верхней части окна командной строки.
  • echo

    Режим вывода команд на экран. При включении, командная строка выведет на экран сообщение о совершенном действии. При отключении, соответственно, сообщения пропадут. Обратите внимание, что вам придется контролировать статус echo. Если команда активирована на строке 2 и вы решили отключить ее на строке 22, 20 промежуточных строк будут содержать включенный режим вывода команд.
  • pause

    Используется для остановки процесса.
  • exit

    Позволяет закрыть командную строку.
  • cls

    Используется для очистки окна командной строки.
  • ::

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

Представленные выше команды — базовые и присутствуют во всех версиях Windows. Дополнительные команды появляются при установке соответствующего программного обеспечения. Например, если вы хотите автоматизировать задачи браузера Google Chrome, введите соответствующий код под названием chrome.

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

Руководство по созданию BAT файла

В этом разделе мы рассмотрим алгоритм создания пакетного файла, который подойдет для Windows 10, Windows 8.1, Windows 7 и даже для Windows XP.

1. Откройте Блокнот. При желании, воспользуйтесь альтернативой стандартному приложению — Notepad++.

2. С помощью команду echo off временно отключите комментарии, чтобы не засорять окно.

3. Введите заголовок title My First Bat File.

4. Добавьте комментарий This comment will not appear in the command prompt.

Следует отметить, что по умолчанию в командной строке отображается только английский язык. Тем не менее, комментарий может быть на любом другом. Он не будет отображаться в CMD и останется только в блокноте. Комментарий — ваша личная заметка, чтобы не потеряться в коде.

5. Введите команду echo Test file executed.

6. Далее введите I am too lazy to write commands by myself.

7. И, наконец, команда paust, чтобы обозначить завершение процесса.

8. Сохраните документ, изменив формат с .txt на .bat.

Готовый пакетный файл имеет два вида:

В окне блокнота:

Блокнот

В окне командной строки:

BAT файл в CMD

Мониторинг систем с помощью BAT файла

В предыдущем разделе мы рассмотрели основы и самый примитивный вариант BAT файла. Хотя его возможности достаточно широки — полный функционал CMD. Давайте рассмотрим, как с помощью пакетного файла можно провести мониторинг систем компьютера.

Отчет об энергопотреблении:

Отчет об энергопотреблении

1. Откройте Блокнот и создайте новый документ.

2. Введите команду powercfg /energy и перейдите к следующей строке.

3. Введите команду C:WINDOWSsystem32energy-report.html.

4. Сохраните документ с названием energyreport.bat.

Примечание:
Не забудьте изменить формат, иначе документ так и останется текстовым.
Важно:
BAT файлы категории POWERCFG откроются только в случае запуска от имени администратора.

Отчет о состоянии батареи:

Отчет о состоянии батареи

1. Откройте Блокнот и создайте новый документ.

2. Введите команду powercfg /batteryreport и перейдите к следующей строке.

3. Введите команду C:WindowsSystem32battery-report.html.

4. Сохраните документ под названием batteryreport.bat.

Примечание:
Не забудьте изменить формат, иначе документ так и останется текстовым.
Важно:
BAT файлы категории POWERCFG откроются только в случае запуска от имени администратора.

Модификация BAT файлов

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

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

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


Похожие статьи про восстановление данных:

Дата: 11/12/2019

Теги: Windows, Диск, Компьютер, Ноутбук, Программа

Содержание:

  • 1 Как создать файл с расширением BAT
  • 2 Основные команды, синтаксис и примеры использования батников
  • 3 Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.

Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.

Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».

Создание bat-файла в Notepad++ шаг 1

Создание bat-файла в Notepad++ шаг 2

Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».

Сохранение bat-файла в Блокноте

Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.

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

Основные команды, синтаксис и примеры использования батников

Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.

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

start "" "C:/Program Files/Google/Chrome/Application/chrome.exe"
timeout /t 05
start "" "C:/Program Files/Mozilla Firefox/firefox.exe"
timeout /t 05
start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"

kak-sozdat-bat-fail-4

Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.

kak-sozdat-bat-fail-5

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

start /b "" "путь"

kak-sozdat-bat-fail-6

Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.

start /b "" "путь"
pause

kak-sozdat-bat-fail-7

Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:

@echo off
chcp 1251
echo "Вы действительно хотите выключить компьютер?"
pause
shutdown /s /t 0

kak-sozdat-bat-fail-8

kak-sozdat-bat-fail-9

Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.

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

Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:

del /A /F /Q "D:/data"

kak-sozdat-bat-fail-10

А можно и так:

forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"

kak-sozdat-bat-fail-11

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

А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:

robocopy C:/data D:/backup /e
pause

kak-sozdat-bat-fail-12

Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.

kak-sozdat-bat-fail-13

Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

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

Запуск bat-файла от имени администратора

Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.

kak-sozdat-bat-fail-15

Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.

Настройка запуска bat файла через Планировщик - шаг 1

Настройка запуска bat файла через Планировщик - шаг 2

Настройка запуска bat файла через Планировщик - шаг 3

Настройка запуска bat файла через Планировщик - шаг 4

Настройка запуска bat файла через Планировщик - шаг 5

И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.

kak-sozdat-bat-fail-21

Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs, предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "D:script.bat" & Chr(34), 0
Set WshShell = Nothing

kak-sozdat-bat-fail-22

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

А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.

Как писать скрипты на BATCH? 🤔

Все на самом деле проще, чем кажется. 😉

Вывод текста на экран

@echo off
echo It's my the first script on BATCH!

Вывод:

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!

У вас отобразятся команды, которые вы записали в ваш скрипт, а потом их результат.

Комментарии, кодировка и перенос строки

Комментарии

Комментарии в коде чаще всего создаются, для описания какой-либо строчки или какого-либо блока кода.
Имеется несколько способов оставить комментарий:

@rem Смотри какой красивый комментарий
rem А как тебе этот комментарий?
:: И даже так можно!

Разницы не будет как вы это сделаете, комментарий не читается при исполнении скрипта — он только для вас.

Кодировка

Допустим вы захотели вывести текст в консоль, который написан кириллицей, но при выводе возникает проблема? Что это за символы?!
Для этого следует указать интернациональную кодировку UTF-8:

@echo off
@rem chcp *сюда код кодировки* (65001 это UTF-8)
chcp 65001

echo Привет, кириллица!

Перенос строк

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

@echo off
chcp 65001

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

А что, если вы хотите вывести текст выше также, как это было и в коде? Эти ^ ёлочки не способны такого сделать, и тут можно сделать такую штуку:

@echo off
chcp 65001

set "n=&echo."
echo Это можно сказать простая табуляция.%n%Точнее обычная переменная,^
которая может спокойно перенести строчку на следующую.%n%^
Переменные мы разберем в следующей главе.

Переменные

В BATCH переменные бывают глобальные 🔓 и локальные 🔒, изначально они все глобальные, а также их несколько видов.
Глобальные переменные можно использовать повсюду, в скрипте, другом bat-файле, но только в текущей сессии. Что такое текущая сессия? 🤔 Простыми словами это открытая консоль в данный момент. Давайте разбираться, но для начала посмотрим, как можно создать самую простую переменную.

set variable_name=Simple variable

Любая переменная создается с ключевого слова set, дальше можно указать тип переменной (необязательно), после обозвать её. Значения переменной указываются после символа = без пробелов. Обычная переменная может содержать только строку (string).

@echo off
@rem Моя первая переменная, и сейчас я ее выведу на экран.

set text=Hello, world!
echo %text%

Вывод:

Hello, world!

Как вы наверное догадались, чтобы получить значение переменной, нужно обернуть название переменной в символы %.
Другой вид переменной, числовой.

С такой переменной можно проводить математические операции:

@echo off
@rem Как мне сложить два числа?

set /a number=2021 + 1
echo New %number% year

Вывод:

New 2022 year

Также можно создать две разных переменных и сложить их воедино.

@echo off

set /a number1=100
set /a number2=899
set /a result=number1 + number2

echo %number1% + %number2% = %result%

Вывод:

100 + 899 = 999

Давайте расмотрим еще один вид переменной.

@echo off

set /p input=Enter some text: 
echo %input%

Вход:

script запускаем файл
Enter some text: Don’t worry, smile!

Вывод:

Don’t worry, smile!

example

Такая переменная может принимать в себя данные, которые вы передадите.
Имеется еще один интересный вид переменной, она называется переменной аргумента.
Обозначается она таким образом: %1 %2 %3...

Вход:

script Something

Вывод:

Something

example

Когда мы запускаем наш bat-файл из консоли, мы можем передать любой аргумент после его названия: script Something.
script — название нашего файла, Something — наш желаемый аргумент. Если мы попытаемся передать несколько слов (аргументов) через пробел, то у нас засчитает только первое слово. То есть каждое новое слово по сути является новым аргументом.

Вход:

script Everything will be fine…

Вывод:

Everything

Этого можно избежать следующими способами:

  1. Указать больше переменных.
  2. Обернуть текст в кавычки " "
  3. Указать символ *
Способ первый:

Я хочу передать вот этот текст: Everything will be fine.... Здесь 4 слова (необязательно слова, после каждого нового пробела получается новый аргумент)

@echo off
echo %1 %2 %3 %4

Вход:

script Everything will be fine…

Вывод:

Everything will be fine…

Второй способ:

В этом способе я оберну текст в кавычки " "

Вход:

script «Everything will be fine…»

Вывод:

«Everything will be fine…»

Третий способ:

Вход:

script Everything will be fine…

Вывод:

Everything will be fine…

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

@echo off

set /a value=%1
echo %value%

Вход:

script 12+12

Вывод:

24

example

Локальные переменные

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

@echo off

set global_variable=I'm Global Elite

setLocal
set local_variable=I'm... I.. nobody?...
endLocal

Попробуйте запустить этот скрипт, а после прописать в консоли echo %global_variable%, получилось?
Теперь попробуйте echo %local_variable%. Мм.. нет?
Также глобальными переменными можно пользоваться в других bat-файлах. Попробуйте создать другой файлик и к примеру вывести глобальную переменную на экран.

В принципе все просто.
Практика:

  1. Попробуйте написать скрипт, который будет принимать ваше имя и возраст, после выводить его на экран.
Ваше имя: Даниил
Ваш возраст: 17

Привет, Даниил, а знаю, что тебе 17 лет!
  1. Попробуйте сделать простой калькулятор, который будет только складывать числа.
Введите первое число: 12
Введите второй число: 12

Ответ: 24

Циклы

Цикл for (по умолчанию)

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

@echo off

for %%i in (C:folderfantasy.txt C:foldermyths.txt) do (
  copy %%i C:UsersuserDesktop
)

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

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

Цикл for /R

Данный цикл используется для перебора файлов в директории:

@echo off

for /r C:folder %%f in (*.txt) do (
  echo %%f
)

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

Цикл for /D

Используется для загрузки списка папок, которые являются подпапками текущей директории:

@echo off

cd C:folder

for /d %%f in (f* n*) do (
  echo %%f
)

example
В данном примере мы получим список папок в директории C:folder, которые начинаются с букв f и n. Если передать *, мы получим список всех папок находящихся в директории.

Цикл for /l

Этот цикл служит для загрузки на ряде цифр (range of numbers):

@echo off

for /l %%i in (1, 1, 10) do (
  echo %%i
)

example
В этом примере мы выведим цифры от 1 до 10.

for /l %%i in (start, step, end) do (
  echo %%i
)
  • start: Первое значение переменной
  • step: После каждого повтора (iteration) значение переменной будет прибавлять ‘step’.
  • end: Последнее значение.

…дописывается

Понравилась статья? Поделить с друзьями:
  • Как написать скрипт для взлома
  • Как написать скрипт для браузера хром
  • Как написать скрипт для windows простой
  • Как написать скрипт для windows cmd
  • Как написать скрипт для powershell