Три наблюдения о командной строке и путях в файловой системе

Три наблюдения о командной строке и путях в файловой системе

Что такое bat-файл

Bat-файл – это текстовый файл, который содержит в себе набор команд для выполнения в командной строке. Такие файлы используются при работе с ОС Windows и обозначаются расширением .bat. Название bat-файла происходит от английского “batch file” – пакетный файл, продвинутые пользователи часто используют название “батник”. 

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

Зачем нужны bat-файлы:

  1. Автоматизация задач. Например, для повторяющихся типов действий: копирование, переименование файлов, создание резервных копий. Благодаря bat-файлам, можно запустить серию команд одним нажатием кнопки, что экономит время и не требует необходимость вводить однотипные команды вручную.
  2. Выполнение скриптов. Bat-файлы используют для выполнения скрипта на командном языке, например, CMD или PowerShell. Это позволяет создавать и запускать скрипты для выполнения сложных задач без необходимости запуска каждой команды по отдельности.
  3. Конфигурация системы. Bat-файлы могут использоваться для настройки и конфигурации операционной системы Windows, например, чтобы изменять системные переменные, устанавливать параметры безопасности, настраивать сетевые подключения.

Три наблюдения о командной строке и путях в файловой системе

Если вы ищите надежный выделенный сервер с операционной системой Windows, предлагаем воспользоваться услугой Windows VDS/VPS от RU-CENTER.

Как создать bat-файл

Для создания bat-файла понадобится устройство с ОС Windows и любой текстовый редактор. Следуйте инструкции: 

  1. Откройте текстовый редактор, например, Блокнот или Visual Studio Code.
  2. Создайте в нем пустой файл.
  3. Запишите команду в том виде, как бы вы вводите ее в командную строку (каждую новую команду указывайте на отдельной строке). 
  4. Добавьте любую необходимую логику или условные операторы, например, if-else или циклы, чтобы определить, какие команды будут выполняться в зависимости от определенных условий.
  5. Сохраните файл с расширением .bat. Для этого выберите Сохранить как и укажите тип файла Все файлы, добавьте расширение .bat в конце имени файла (например, myscript.bat).
  6. Создания bat-файла завершено.
:/>  Для переключения режимов редактирования текстового процессора вставка замена используется клавиша

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

Есть несколько способов запустить bat-файл:

  1. Найдите bat-файл с помощью Проводника и дважды щелкните на него. Это запустит файл. Команды в нем будут автоматически выполнены в командной строке. 
  2. Из командной строки. Откройте командную строку, перейдите в директорию, где находится bat-файл, и введите имя файла. Кликните Enter, чтобы запустить bat-файл.
  3. С помощью ярлыка на рабочем столе. Щелкните правой кнопкой мыши на bat-файле, выберите Отправить, затем выберите Рабочий стол (создать ярлык). После создания ярлыка переместите его на рабочий стол и дважды щелкните на нем для запуска.
  4. Через Планировщик заданий. Можно настроить запуск bat-файла в определенное время или при определенных событиях с помощью Планировщика заданий. Для этого откройте Планировщик, создайте новое задание и укажите путь к bat-файлу в разделе Действие.

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

Синтаксис написания bat-файла

При написании bat-файла необходимо учитывать следующие правила:

  1. Комментарии в bat-файлах начинаются с символа REM (от английского remark – замечание) или :: (двойные двоеточия) и используются для пояснения кода. 
  2. Команды в bat-файле записываются на отдельных строках и выполняются последовательно, начиная с верхней строки. 
  3. При использовании переменных для хранения значений в bat-файле, их имена должны начинаться с символа %, и значения переменных устанавливаются с помощью оператора SET, например:
  1. В bat-файле можно использовать условные операторы, такие как IF и FOR, для выполнения команд в зависимости от определенных условий.
  2. С помощью оператора FOR можно создавать циклы для выполнения команд несколько раз или по списку значений.

Настройка планировщика заданий (периодический запуск)

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

  1. Откройте Планировщик, нажав Win + R, введите taskschd.msc и нажмите Enter.
:/>  Командная строка - команда OpenFiles

Три наблюдения о командной строке и путях в файловой системе

  1. Нажмите на Создать задачу в правой части окна.
  2. Во вкладке Основные введите имя задачи и описание (необязательно), нажмите Далее.
  3. Во вкладке Действия нажмите на Создать, в выпадающем меню выберите Запуск программы.
  4. В строке Программа/скрипт укажите путь к bat-файлу, который вы хотите запускать. Кликните на кнопку Обзор, чтобы найти bat-файл на компьютере.
  5. Настройте остальные параметры по вашему усмотрению: вы можете указать условия запуска, триггеры, параметры задачи и т.д.
  6. Когда все настройки сделаны, нажмите ОК, чтобы сохранить задачу.

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

Основные команды при написании

Приведем несколько основных команд, которые можно использовать при написании bat-файла:

  • echo – для вывода текста или переменных в командную строку или в файл.
  • set – для определения или изменения значения переменной.
  • if – для выполнения команд в зависимости от определенных условий.
  • for – для создания циклов и повторного выполнения команд.
  • call – для вызова другого bat-файла из текущего.
  • pause – для остановки выполнения скрипта и ожидания, пока пользователь не нажмет клавишу.
  • rem – для добавления комментариев в скрипт. Комментарии игнорируются интерпретатором bat-файлов.
  • cd – для перехода в другой каталог.
  • del – для удаления файлов. 
  • copy – для копирования файлов. 

Переменные

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

Чтобы использовать переменные в bat-файлах, следует сначала задать ее с помощью команды set. Значение переменной указывается с помощью символа %. 

В bat-файлах можно использовать несколько типов переменных:

  1. Строковые переменные:
  1. Числовые переменные:
:/>  Как обнулить mac os до заводского состояния

set /a NUMBER=5

  1. Параметры командной строки:
  1. Системные переменные:
  1. Временные переменные:

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

  1. Пример bat-файла, выводящего “Hello, World!”:
  1. Пример bat-файла, запрашивающего у пользователя имя и выводящего приветствие:

set /p name=Введите ваше имя: 

  1. Пример bat-файла, выполняющего математические операции:

set /a num1=5

set /a num2=2

set /a sum=%num1% + %num2%

set /a product=%num1% * %num2%

Три наблюдения о командной строке и путях в файловой системе

  1. Пример bat-файла, выполняющего цикл для перебора файлов в каталоге:

for %%i in (*.txt) do (

  1. Пример bat-файла, проверяющего наличие файла и выполняющего определенные действия:

if exist myfile.txt (

) else (

Заключение

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

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

Автоматизируем рутину в Windows с помощью скриптов.



Иллюстрация: Оля Ежак для Skillbox Media

Мария Толчёнова

Филолог и технарь, пишет об IT так, что поймут даже новички. Коммерческий редактор, автор технических статей для vc.ru и «Хабра».

На Windows часто возникают рутинные задачи, которые хочется автоматизировать. Например, почистить временные файлы, забэкапить важные документы или запустить одним кликом несколько приложений. Для этого есть простой инструмент — BAT-файлы (в простонародье «батники»). В этой статье научимся разрабатывать простые скрипты и запускать их по расписанию.

Три наблюдения о командной строке и путях в файловой системе

CTO Flocktory, программный директор профессии «DevOps-инженер» в Skillbox, директор программного комитета DevOpsConf.

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

Для создания BAT-файла понадобится любой текстовый редактор, например стандартный «Блокнот». Давайте откроем его и напишем скрипт, который выведет в окне командной строки сообщение Hello, World!:

@echo off
echo Hello, World!
pause

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

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Блокнот» / Skillbox Media

В появившемся окне можно ввести любое название файла, а конце надо обязательно добавить расширение .bat. Затем нажимаем Сохранить:

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Блокнот» / Skillbox Media

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

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Командная строка» / Skillbox Media

Для разработки батников существует множество команд. Рассмотрим те, что встречаются чаще всего.

КомандаАргумент командыДействие
titleЖелаемый заголовокУстанавливает заголовок окна командной строки на желаемый
cdПуть к каталогуПереводит пользователя в каталог, указанный в пути к файлу
startКоманда или путь к файлуЗапускает указанный файл программы или выполнение команды в новом окне командной строки
mkdir или mdИмя папкиСоздаёт папку с указанным именем
copyИмена файлов и путь к папке для копированияКопирует файлы в указанный каталог
xcopyИмена файлов и путь к папке для копированияКопирует каталоги и файлы, сохраняя их структуру
moveПуть к файлу и к конечному каталогуПеремещает файлы из одной папки в другую
delПуть к папкеУдаляет файлы внутри каталога. Не трогает папки
rdПуть к папкеУдаляет папку
startПуть к файлу программыЗапускает файл программы
colorОбозначение цветаМеняет цвет фона и текста командной строки
echoТекстВыводит текст на экран командной строки
chcpОбозначение кодировкиУказывает кодировку текста. Пригодится для корректного отображения кириллицы
pauseПо окончании выполнения команд оставляет окно командной строки запущенным
exitЗавершает работу командной строки

Переменная — виртуальная ячейка с присвоенным именем, в которой хранятся данные. Это может быть текст, числа или выражения. К переменной можно обращаться по имени, чтобы использовать её содержимое или перезаписывать его.

В BAT-файлах переменная объявляется с помощью команды set. После команды надо указать уникальное имя переменной и присвоить ей значение:

@echo off
set example=Hi,user!
echo %example%
pause

Разберём строки скрипта:

  • @echo off — эта строка отключает отображение команд. Будут показаны только строки, которые начинаются с echo.
  • set example=Hi, user! — создаёт переменную с именем primer и записывает в неё строку Hi, user!.
  • echo %example% — выводит содержимое переменной на экран.
  • pause — эта команда не даёт окну закрыться сразу после выполнения скрипта, чтобы мы могли оценить результат.

Если запустить этот BAT-файл, то в командной строке появится содержимое переменной example:

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Командная строка» / Skillbox Media

Для записи в переменную значения выражения надо использовать флаг /a перед именем:

set /a example=*

Для создания однострочных комментариев используют команду rem или двойное двоеточие (::):

rem текст_комментария
:: текст_комментария

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

@echo off
rem Следующие команды выводят текст на экран
set primer=Hi, user!
echo %primer%
pause

Для больших комментариев на несколько строк можно использовать команду goto:

goto comment
===
текст_комментария
===
:comment

Разберём примеры готовых BAT-файлов для разных задач. Их можно скопировать и использовать уже сейчас.


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

chcp 

При каждом запуске скрипта в папке backup на диске C: будем создавать директорию с текущей датой в названии — так будет проще искать бэкапы. Для этого используем команду md с параметром %DATE%:

md 

xcopy 

Далее переходим в каталог с резервными копиями с помощью команды cd и вызываем 7-zip с параметром -tzip. Появится архив бэкапа в формате .zip:

cd -tzip a %DATE%.zip %DATE%

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

Весь список доступных цветов приведён в таблице:

Три наблюдения о командной строке и путях в файловой системе

Таблица цветов для оформления скриптов
Скриншот: «Командная строка» / Skillbox Media

Три наблюдения о командной строке и путях в файловой системе

Так выглядит перекрашенная командная строка Windows
Скриншот: «Командная строка» / Skillbox Media

Полный текст скрипта для резервного копирования файлов:

@echo off
chcp
color
echo Начинается процесс резервного копирования
md
xcopy
cd -tzip a %DATE%.zip %DATE%
echo Процесс завершен
pause

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

Исполняемые файлы запускаются командой start. В качестве аргумента ей надо передать путь к файлу на диске:

start 

Так, чтобы открыть одновременно браузер Microsoft Edge, текстовый редактор WordPad и приложение «Службы», надо трижды вызвать команду start:

start "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"start "C:\Program Files\Windows NT\Accessories\wordpad.exe"start 

Перед аргументом всегда добавляйте двойные кавычки (“”), иначе откроются не программы, а новые экземпляры командной строки.

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

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

Сначала вызовем команду rd с параметрами /s и /q — это полностью удалит папку с диска. Затем создадим Temp заново с помощью mkdir:

rd /s /q C:\Users\%USERNAME%\AppData\Local\Temp\
mkdir C:\Users\%USERNAME%\AppData\Local\Temp\

Запускать BAT-файлы можно разными способами. Самый очевидный — двойной щелчок левой кнопкой мыши. Также можно делать это из командной строки или настроить автоматический запуск по расписанию.


  • Откройте окно поиска Windows. Он находится рядом с меню «Пуск».
  • Введите в строке поиска cmd и запустите инструмент «Командная строка».

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Командная строка» / Skillbox Media
  • В окне командной строки укажите полный путь до файла .bat и нажмите Enter.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Командная строка» / Skillbox Media

Батники в Windows открываются в окне командной строки, что иногда может мешать в работе. Простой скрипт на языке VBScript позволяет запускать BAT-файлы в фоновом режиме:

  • Откройте любой текстовый редактор, например «Блокнот».
  • Вставьте в новый документ код скрипта для скрытого запуска:

Set WshShell = CreateObject()
WshShell.Run chr() & & Chr(),
Set WshShell = Nothing

  • Сохраните файл, но вместо .bat укажите расширение .vbs.
  • Запустите файл, щёлкнув по нему дважды левой кнопкой мыши.

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

1. Нажмите сочетание клавиш Win + R, в появившемся окне введите taskschd.msc и нажмите Enter.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: Меню «Выполнить» / Skillbox Media

2. Откроется «Планировщик заданий». В правой части его окна нажмите Создать простую задачу.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Планировщик заданий» / Skillbox Media

3. В «Мастере создания простой задачи» введите имя новой задачи и её описание. Затем нажмите Далее.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Мастер создания простой задачи» / Skillbox Media

4. Выберите периодичность запуска. Доступны опции с привязкой к конкретному времени или запуску системы.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Мастер создания простой задачи» / Skillbox Media

5. Введите время, в которое нужно запускать задачу.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Мастер создания простой задачи» / Skillbox Media

6. Отметьте пункт Запустить программу.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Мастер создания простой задачи» / Skillbox Media

7. Укажите путь до вашего BAT-файла и нажмите Готово.

Три наблюдения о командной строке и путях в файловой системе

Скриншот: «Мастер создания простой задачи» / Skillbox Media

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

BAT-файлы — мощный инструмент для автоматизации задач на компьютерах под управлением Windows. Больше о командах можно узнать из официальной документации Microsoft, а на GitHub разработчики публикуют коллекции полезных батников.

Три наблюдения о командной строке и путях в файловой системе

Изучите основы Python на практике. Бесплатно ➞

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • @ECHO OFF – отключение отображения на дисплее, чтобы показывать только сообщения в чистой строке. Как правило, эта строка идет в начале файла. (Вы можете использовать эту команду без «@», но символ скрывает выполняемую команду для более чистого возврата.)
    • ECHO – печатает нужный текст на экране.
    • PAUSE – предотвращает закрытие окна консоли после выполнения команды. Вы можете использовать эту команду в конце скрипта или после определенной команды при запуске нескольких задач, если вы хотите сделать паузу между ними.
  3. Нажмите меню Файл.
  4. Выберите опцию Сохранить как.
  5. Введите имя для скрипта – например, first_batch.bat

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

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

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

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

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

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

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

    • @ECHO OFF – отключение отображения на дисплее, чтобы показывать только сообщения в чистой строке. Как правило, эта строка идет в начале файла. (Вы можете использовать эту команду без «@», но символ скрывает выполняемую команду для более чистого возврата.)
    • TITLE – отображает произвольное имя в строке заголовка терминала.
    • :: – Позволяет добавлять комментарии и информацию, которая игнорируется при запуске пакетного файла.
    • ECHO – печатает нужный текст на экране.
    • PAUSE – предотвращает закрытие окна консоли после выполнения команды. Вы можете использовать эту команду в конце скрипта или после определенной команды при запуске нескольких задач, если вы хотите сделать паузу между ними.
  4. Нажмите меню Файл.
  5. Выберите опцию Сохранить как.
  6. Введите имя для скрипта – например, first_batch.bat

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

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

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

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

  1. Откройте Блокнот или другой текстовый редактор.
  2. Скопируйте и вставьте следующую команду (заменив PATH-NETWORK-SHARE\FOLDER-NAME на сетевой путь и название папки, а YOUR-USERNAME YOUR-PASSWORD на логин и пароль пользователя): net use z: \\PATH-NETWORK-SHARE\FOLDER-NAME /user:YOUR-USERNAME YOUR-PASSWORD

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

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

  3. Нажмите меню Файл.
  4. Выберите опцию Сохранить как.
  5. Введите имя для скрипта – например, network-drive.bat

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

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

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

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

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

Проводник

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

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

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

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

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

  1. Откройте командную строку от имени администратора.
  2. Введите путь и название командного файла и нажмите : C:\PATH\TO\FOLDER\BATCH-NAME.bat

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

    C:\Users\user\Documents\scripts\first_batch.bat

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

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

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

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

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

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

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

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

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

  7. Выйдите из учетной записи Windows 10.
  8. Войдите в аккаунт.

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

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

Три наблюдения о командной строке и путях в файловой системе

Время на прочтение

Наблюдение № 1

Первое наблюдение будет как раз о шаблонах, но не мышления, а о шаблонах имён файлов и различиях в их трактовке командными интерпретаторами DOS/Windows и Unix/Linux.

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

…\folder\
…\folder\file1.txt
…\folder\subfolder\
…\folder\subfolder\file2.txt

Для эксперимента в Windows её можно создать командами:

> MKDIR folder\subfolder
> ECHO 1 > folder\file1.txt
> ECHO 2 > folder\subfolder\file2.txt

а в Linux – командами:

$ mkdir -p folder/subfolder
$ echo 1 > folder/file1.txt
$ echo 2 > folder/subfolder/file2.txt

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

> DIR /B folder\*

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

file1.txt
subfolder

То, что требовалось и ожидалось. Теперь выполним аналогичную команду в командной оболочке BASH под Linux:

$ ls -1 folder/*

Ключ -1 (цифра «один», а не строчная латинская буква «эль») требует осуществлять вывод в одну колонку, но дело не в этом, а в самом содержимом этого вывода:

folder/file1.txt
folder/subfolder:
file2.txt

Ладно бы ещё только имена файлов и каталогов предварялись родительским folder — с этим ещё можно мириться. Но зачем команда отобразила содержимое подкаталога folder/subfolder?

Оказывается, командные оболочки Windows (COMMAND.COM и CMD.EXE) и Linux (SH и BASH, в других оболочках дело может обстоять иначе) по-разному обрабатывают параметры командной строки, которые содержат подстановочные символы * и ?. Windows поступает просто — передаёт параметры командам/программам в том виде, в каком они записаны в командной строке. Раз написано folder/*, то команда DIR и получит folder/*, а дальше сама попробует понять, чего от неё хотят. Раз *, значит надо показать все элементы каталога folder. Всё просто и логично.

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

$ ls -l folder/*
$ ls -l folder/file1.txt folder/subfolder

Программа ls выводит информацию о своих параметрах, причём если это каталог, то по умолчанию отображает его содержимое. Между прочим, Windows ведёт себя схожим образом, если в команде DIR указать несколько параметров:

> DIR /B folder\file1.txt folder\subfolder
file1.txt
file2.txt

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

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

$ ls -1 folder
file1.txt
subfolder

Отлично, но как быть, если к именам элементов каталога (файлам и подкаталогам) всё-таки надо применить маску, например, «*.abc»? Идея заключить параметр командной строки в кавычки “folder/*” не работает: программа ls (в Linux это внешняя утилита, а не внутренняя команда оболочки, как DIR в Windows) ожидает, что шаблон будет обработан командной оболочкой, и просто сообщает об отсутствии в каталоге folder элемента с именем “*”. Так что остаётся воспользоваться специальным ключом -d программы ls:

$ ls -1d folder/*
folder/file1.txt
folder/subfolder

Бытует мнение, что вариант работы командных оболочек Linux более прогрессивный, чем Windows. Ведь оболочка берёт на себя «общую» часть работы по разбору путей к файлам, в результате чего упрощается код программ и стандартизируется их поведение. Это действительно так, пока шаблону удовлетворяют несколько файлов. Но что, если таких файлов 100500? Командная оболочка попытается единовременно создать командную строку, в которой перечислены пути ко всем этим файлам. Обычно это заканчивается нехваткой памяти для командной строки. В то время, как подход, принятый в Windows, позволяет программе спокойно перебирать все файлы по одному.

Наблюдение № 2

Второе наблюдение связано с именованием каталогов в Linux. Имя subfolder может означать как файл, так и каталог. Несмотря на то, что в Linux почти все сущности являются файлами, различия иногда бывают важны. Допустим, требуется создать копию файла file1.txt в подкаталоге subfolder. Это можно сделать такой командой:

$ cp folder/file1.txt folder/subfolder

Она работает, и всё вроде бы прекрасно. Но предположим, что в путь назначения вкралась опечатка: вместо subfolder набрано sunfolder. Что произойдёт в этом случае? Операция завершится успешно, но содержимое файла file1.txt будет записано в файл folder/sunfolder. Это, очевидно, не то, что ожидалось. Как можно избежать такой неприятности?

Один из вариантов — для указания целевого каталога использовать автодополнение по клавише Tab. Но в этом случае надо быть особенно внимательным, если в каталоге folder есть другие элементы с именами, похожими на subfolder. Автоматика может выбрать не ту цель, которая была запланирована, и промах будет не менее досадным.

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

$ cp folder/file1.txt folder/subfolder/

В таком варианте опечатка уже не пройдёт незамеченной:

$ cp folder/file1.txt folder/sunfolder/
cp: cannot create regular file 'folder/sunfolder': Not a directory

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

Наблюдение № 3

Третье наблюдение касается «особых каталогов». Все знают, что родительский каталог обозначается двумя точками: «..». Многим известно, что одной точкой «.» обозначается текущий каталог. Но если на каталоги верхнего уровня приходится ссылаться регулярно, то польза от ссылки на текущий каталог не столь очевидна: он ведь и так должен подразумеваться по умолчанию.

Теоретически должен, но на практике не всегда так происходит. Например, в текущем каталоге лежит файл moria.deb, который надо установить. Следующая команда с этой задачей не справится:

$ sudo apt install moria.deb
...
E: Unable to locate package moria.deb
E: Couldn't find any package by glob 'moria.deb'
E: Couldn't find any package by regex 'moria.deb'

Можно возразить, что для работы с локальными пакетами следует использовать программу dpkg, а не apt, которая задумывалась для работы с пакетами в репозиториях и ожидает в командной строке название пакета, а не имя файла. Но, с другой стороны, небольшое изменение командной строки позволяет раскрыть и программе apt глаза и на локальные файлы:

$ sudo apt install ./moria.deb

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

Ещё одна польза от «точки» обнаруживается, когда надо выполнить копирование содержимого каталога, в котором есть скрытые файлы или подкаталоги (в Linux таковыми являются файлы, первым символом в имени которых идёт точка). Примером может служить файловая система дистрибутивов Ubuntu, в корне которой которой присутствует каталог .disk со служебной информацией. Если образ дистрибутивного носителя примонтирован в точке /mnt/ISO, то следующая команда копирования разместит в целевом каталоге ~/ubuntu копии всех файлов и каталогов, кроме скрытого:

$ cp -a /mnt/ISO/* ~/ubuntu/

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

$ cp -a /mnt/ISO/.disk ~/ubuntu/

Но можно воспользоваться «точкой» и выполнить всю необходимую работу одной командой:

$ cp -a /mnt/ISO/. ~/ubuntu/

Этот вариант выполнит полное копирование, включая скрытый каталог.

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

Три наблюдения о командной строке и путях в файловой системеБывает так, что написанный Вами BAT-файл работает на одном компьютере, но не работает на другом. Ошибка часто заключается в том, что были использованы прямые пути к файлам. Например батник для копирования всех текстовых файлов находящихся в папке windows на диске C

Такой батник будет работать на любом компьютере, только если операционная система установлена на диск С, если ОС расположена на другом диске D,F,K,J и т.д., необходимо использовать переменную %WINDIR%

Такой батник будет работать на любом компьютере – без разницы на какой диск установлена ОС

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

Список переменных среды ОС Windows Вы можете посмотреть введя в командной строке: set и нажав клавишу Enter Также можно вывести список переменных в текстовый файл с помощью батника

set > docent.txt

Bat-файл с таким кодом создаст текстовый файл docent.txt(здесь и далее имена подставляйте свои)и выведет список переменных среды ОС Windows в этот текстовый документ в том-же месте где и располагается запущенный батник.

Список  переменных сред

%APPDATA%                                  используемое по умолчанию размещение данных приложений

%CD%                                           путь к текущей папке

%CMDCMDLINE%                           строка команд, с помощью которой был запущен данный экземпляр Cmd.exe

%CMDEXTVERSION%                      номер версии текущих расширений обработчика команд

%COMPUTERNAME%                        имя компьютера

%COMSPEC%                                 путь к исполняемой командной оболочке

%DATE%                                        текущие данные, использует тот же формат, что и команда date /t

%ERRORLEVEL%                             код ошибки последней использовавшейся команды

%HOMEDRIVE%                              имя диска локальной рабочей станции

%HOMEPATH%                                полный путь к основному каталогу пользователя

%LOGONSEVER%                            имя контроллера домена, который проверял подлинность текущей сессии

%NUMBER_OF_PROCESSORS%        количество процессоров, установленных на компьютере

%OS%                                           имя операционной системы

%PATHEXT%                                   список расширений файлов

%PROCESSOR_ARCHITECTURE%     архитектура процессора. Значения: x86, IA64

%PROCESSOR_IDENTFIER%            описание процессора

%PROCESSOR_LEVEL%                   номер модели процессора, установленного на компьютере

%PROCESSOR_REVISION%             номер модификации процессора

%ProgramFiles%                             путь к Program Files

%PROMPT%                                    параметры командной строки для текущего интерпретатора

%RANDOM%                                   произвольное десятичное число от 0 до 32767

%SYSTEMDRIVE%                           имя диска, содержащего корневой каталог

%SYSTEMROOT%                            размещение системного каталога Windows

%TIME%                                         текущее время

%WINDIR%                                    размещение каталога операционной системы

Например если Вы захотите узнать текущее время %TIME% и просто напишите %TIME% в CMD – то получите ошибку: “Синтаксическая ошибка в имени файла, имени папки или метке тома”

Батником вывести информацию в txt можно так

Использование переменной при удалении файлов и папок с помощью Bat файла

Удаление папки Docent которая находится на диске С в WINDOWS

RD С:\WINDOWS\Docent /S/Q

То-же самое, но удаляем папку  с помощью переменной %WINDIR%

RD %WINDIR%\Docent /S/Q

Использование переменной при перемещении файлов

Перемещение текстового файла docent.txt из папки WINDOWS на диске С в папку Program Files которая тоже на диске С

MOVE “C:\WINDOWS\docent.txt” “C:\Program Files”

То-же самое, но перемещаем с помощью переменных %WINDIR% и %ProgramFiles%