Bat-файлы — их создание и команды
Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.
Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.
Что такое bat-файлы?
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, как продемонстрировано на изображении выше. По умолчанию Windows скрывает расширения файлов, и пакетный файл можно отличить от текстового по пиктограмме окна с шестеренками.
Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.
Запуск bat-файлов
Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора.
Исполняемые bat-файлы не могут запрашивать права администратора, если командам нужны расширенные права.
Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл.
Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш 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 Files\123" 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.
Все о реестре Regedit / All about registry
Home Командная строка / Command prompt
Командная строка / Command prompt
Как создать файл в командной строке ? / How create file in command prompt ?
Как создать файл в командной строке ? / How create file in command prompt ?
16.12.2018 11:48 Администратор
Очередная статья будет полезна пользователям если:
— Вы не хотите зависеть от оболочки Windows, от программ notepad, Wordpad, Microsoft Office.
— У Вас не загружается оболочка Windows.
— Нет оболочки Windows, например, вы загружаетесь c Dos или Вам просто интересно как создать файл в командной строке
Начнем.
Для начала, необходимо перейти в командную строку, воспользовавшись сочетаниями клавиш Win+R, в окне Выполнить напечатайте cmd и нажмите кнопку enter
В командной строке перейдите в нужную папку или диск где вы будете создавать файл.
В примере файл мы будем создавать на диске C:\
Ниже, на изображении, мы переходим на диск C:
После перехода на диск C: напечатайте команду для создания файла:
copy con Имя вашего файла и нажмите кнопку Enter
В примере, на изображении ниже, мы создаем файл testfile.txt на диске C:
После того, как мы нажали кнопку Enter можно приступать к оформлению текста
или команд внутри файла
После того, как вы напечатали текст.
Для сохранения файла на диске:
Перейдите на следующую строку нажав кнопку Enter, нажмите кнопку F6 и далее на
кнопку Enter
Результат будет как на изображении ниже:
При нажатии кнопки F6 появляется сочетание символа и буквы ^Z которые и отвечают
за сохранение файла.
Можно использовать сочетание клавиш ctrl+z для получения данных символов.
Осталось просмотреть файл в командной строке.
Для просмотра файла через командную строку, напечатайте команду:
type testfile.txt
или вместо testfile.txt имя файла который создали вы
Результатом данной команды будет просмотр файла который мы создали
Помимо текстовых файлов, вы можете создавать cmd файлы с набором команд для
тихой установки приложений или изменений параметров операционной системы через командную строку.
The next article will be useful to users if:
You don’t want to depend on Windows shell, notepad, Wordpad, Microsoft Office programs.
You do not load the Windows shell.
You don’t have a Windows shell, for example, you boot from dos or you’re just wondering how to create a file on the command line
Start.
To start, you must go to the command line, using the keyboard shortcuts Win+R, type cmd in the Run window and press enter
In the example file we will create on the drive C:
Below, in the image, we go to disk C:
After switching to the C: drive, type the command to create the file:
copy con the Name of your file and press Enter
In the example, in the image below, we create a testfile.txt on drive С:
Once we have pressed the Enter button, you can start formatting the text or commands inside the file
To save a file to disk:
Go to the next line by pressing Enter, press F6 and then press Enter
The result will be as in the picture below:
When you press the F6 button, a combination of the symbol and the letter ^Z appears, which are responsible for saving the file. You can use the ctrl+z key combination to get the symbol data.
It remains to view the file on the command line.
To view the file from the command line, type:
type testfile.txt
or instead of testfile.txt the name of the file you created
The result of this command will be a preview of the file we created
In addition to text files, you can create cmd files with a set of commands to silently install applications or change operating system settings via the command line.
Как создать файл с произвольным именем из командной строки или bat-файла
Для создания файла в процессе выполнения пакетного файла используется символ перенаправления. Он выглядит так:
Т.е. чтобы создать файл нужно перенаправить поток с экрана в файл. Сделать это можно при помощи следующей команды:
@echo Start file>C:\1.txt
После выполнения этой команды в корне диска С будет создан текстовый файл со строкой Start file.
При создании файла в его имени можно использовать системные переменные или их части. Например, можно создать файл-отчет о работе bat файла с именем, равным дате запуска bat файла. Для этого можно использовать следующие строки в bat файле.
set datetemp=%date:~-10% @echo .>%SYSTEMDRIVE%\%DATETEMP%.txt
Эти две строки работают следующим образом. Сначала в памяти создаем переменную datetemp, которой присваиваем 10 символов справа налево от системной переменной DATE. Таким образом, теперь во временной переменной datetemp содержится только текущая дата. Следующей строкой перенаправляем вывод символа точка в файл, имя которого берем из переменной datetemp, а расширение txt указываем явно. Файл будет создан на системном диске компьютера, где выполняется bat файл.
При сборе администратором информации о компьютерах в сети будет удобнее добавить к имени файла имя компьютера. Это легко можно сделать при помощи следующей команды:
@echo .>C:\FolderName\%COMPUTERNAME%.txt
Эта команда в ходе выполнения пакетного файла создаст на диске С текстовый файл с именем того компьютера, на котором выполняется пакетный файл.
Для создания файла с определенным именем можно использовать любые системные переменные, либо создать свои, на основе системных переменных и/или других данных.
4 различных способа создания файла с помощью командной строки в Windows
Создание файла, пожалуй, одна из самых тривиальных задач, которые вы выполняете на своем компьютере почти каждый день. Если вы пользователь Windows, вы, вероятно, делаете это через графический интерфейс.
Хотя на практике этот подход может показаться более простым, особенно если у вас нет опыта работы с CLI, у него есть свои недостатки. В отличие от способа CLI, который обеспечивает быстрый и эффективный способ создания файлов на вашем компьютере, подход GUI включает в себя несколько шагов, что делает его трудоемким и неэффективным.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Итак, вот руководство, которое проведет вас по различным методам, которые вы можете использовать для создания файла в Windows (будь то Windows 11, Windows 10, Windows 8 или Windows 7) с помощью командной строки.
Как создать файл в Windows с помощью командной строки
Командная строка или CMD – это мощная утилита Windows, которая позволяет с легкостью выполнять различные системные операции на вашем компьютере. Он предустановлен в системе и позволяет запускать команды для множества действий, от управления файлами до запуска пакетных файлов для автоматизации задач.
Создание файлов является одной из таких задач, которую вы можете выполнить быстрее и эффективнее с помощью командной строки CMD, чем с помощью проводника. Но прежде чем мы перейдем к делу и продемонстрируем, как создать файл в командной строке, вы должны знать, как перемещаться по структуре каталогов Windows на нем, чтобы вы могли создавать файлы в нужной папке.
Навигация по файловой системе Windows с помощью командной строки
Чтобы перемещаться по файловой системе Windows с помощью CMD, сначала откройте командную строку. Для этого нажмите сочетание клавиш Windows + X и выберите в меню «Командная строка».
Затем введите команду dir, чтобы вывести список всех файлов и каталогов (или папок) внутри папки. После того, как вы определили папку, которую хотите открыть, введите следующую команду и нажмите Enter:
Например:
cd Documents
Чтобы вернуться в родительский каталог, выполните:
cd ..
Для доступа к корневому каталогу:
cd \
Пока мы на этом, вы также должны знать, что вы можете создавать каталоги (или папки) с помощью командной строки. Для этого используйте команду cd , чтобы перейти к папке, в которой вы хотите создать новую папку, и используйте следующий синтаксис:
Например, чтобы создать каталог с именем MyDocs , запустите:
mkdir MyDocs
Наконец, когда вы находитесь в папке, в которой хотите создать файл, используйте любой из следующих методов для создания файлов с помощью CMD.
Создание файла с помощью команды echo
Команда echo отображает сообщения, которые вы вводите в окно CMD. Однако при использовании с оператором перенаправления (>) он удваивается как команда создания файла, которая создает файл из введенного вами текста.
Для создания файла с помощью команды echo откройте командную строку и введите команду, используя следующий синтаксис:
echo your_text_here > filename.extension
Например, если вы хотите создать текстовый файл с именем MyFile с текстом This is sample text и расширением .txt, вы должны запустить:
echo This is sample text > MyFile.txt
После создания файла убедитесь, что он был успешно создан, выполнив:
Например:
type MyFile.txt
Создание файла с помощью команды copy con
В отличие от команды echo , которая с самого начала принимает от вас содержимое файла, который вы создаете, команда copy con использует несколько иной подход.
С ним вам нужно только изначально дать имя вашему файлу. Затем он открывает новый файл в текстовом редакторе, где вы можете заполнить его текстом.
Чтобы создать файл с помощью copy con , используйте следующий синтаксис:
copy con filename_with_extension
Например:
copy con MyFile.txt
Теперь вы попадете в файл в самом окне командной строки, где вы можете добавить к нему желаемый текст. Сделав это, нажмите Ctrl + Z , чтобы сохранить файл, и Ctrl + C , чтобы выйти из редактирования.
Создание файла в блокноте с помощью командной строки
Хотя оба метода, которые мы упоминали до сих пор, работают хорошо, они не идеальны, когда вы хотите ввести длинные текстовые абзацы в свой текстовый файл. Альтернативный способ справиться с этим — использовать Блокнот, который вы обычно используете для создания файлов, но через командную строку.
Для этого введите команду в окне CMD, используя следующий синтаксис, и нажмите Enter :
notepad filename.extension
Например, если вы хотите создать файл с именем SampleDoc , вы должны запустить:
notepad SampleDoc.txt
После этого CMD откроет файл в Блокноте. Вам будет предложено создать новый файл, поскольку введенный вами файл не существует. Нажмите Да , чтобы принять и создать файл.
Теперь, точно так же, как вы используете Блокнот, введите текст в файл и нажмите Ctrl + S , чтобы сохранить, и Ctrl + W , чтобы закрыть файл.
Создание нескольких файлов с помощью командной строки
В случаях, когда вы хотите создать несколько файлов внутри папки одновременно и заполнить их позже, вы можете использовать цикл for , как показано в следующем синтаксисе:
for /l %a in (1 1 10) do type nul > «%a.txt»
…где (1 1 10) указывает CMD выполнять задачу в последовательности от 1, с шагом от 1 до 10. Чтобы создать 20 файлов, замените 10 на 20 в вашей команде.
Если вы хотите добавить общее имя в начало каждого файла, а затем номер, вам нужно использовать следующий синтаксис:
for /l %a in (1 1 10) do type nul > «filename %a.txt»
… где вам нужно заменить имя файла на имя, которое вы хотите дать своим файлам.
Например, выполнение приведенной ниже команды создаст 10 пустых файлов со следующим синтаксисом имени: MyDoc-1 .
for /l %a in (1 1 10) do type nul > «MyDoc-%a.txt»
Кроме того, если вы хотите создать несколько файлов с одним и тем же текстом, вы можете настроить команду так, чтобы она включала одно и то же действие. Для этого вместо включения do type nul вам нужно использовать do echo your_desired_text .
Например, если вы хотите создать 10 файлов с именами MyDoc-1.txt , MyDoc-2.txt ,… и т. д. с помощью This is sample text as text , вы должны запустить:
for /l %a in (1 1 10) do echo This is sample text> «MyDoc-%a.txt»
…и они будут созданы в вашем текущем каталоге . .
Эффективное создание файлов в Windows с помощью командной строки
Методы, перечисленные в этом руководстве, должны помочь вам практически со всеми видами задач по созданию файлов в командной строке, будь то создание однострочных текстовых файлов, текстовых файлов с несколькими абзацами или даже нескольких файлов с настраиваемым текстом и именами файлов.
Таким образом, в зависимости от требований вы можете выбрать соответствующий метод и быстро и эффективно создавать файлы в Windows.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)