Как создать командный файл windows 7. Основные операторы Bat-файла. Как создать файл с расширением BAT

Как создать командный файл windows 7. Основные операторы Bat-файла. Как создать файл с расширением BAT

Инструкция

Запустите программу «Блокнот» для создания Bat-файла. Далее введите текст файла. Он будет различным в зависимости от того, что вы хотите им запустить. Например, создайте bat-файл для подключения к интернету, если ваше подключение запрашивает логин и пароль.

Это можно сделать в случае если сам доступ в интернет уже настроен и ярлык для подсоединения к интернету существует. В файле вам необходимо ввести следующий текст: Radial «Введите название подключения» «Введите логин» «Введите пароль». Например, radial megafon-moskva sdk23SsdkP1 125523.

Сохраните полученный файл. Для этого выполните команду «Файл» – «Сохранить как», введите любое имя файла, затем введите расширение *.bat. Теперь вы можете добавить ярлык для файла в автозагрузку, чтобы подключение к интернету осуществлялось автоматически при запуске операционной системы.

Используйте команду start при создании Bat-файла для запуска приложений. Для этого введите следующий текст в файле: start «Введите полный путь к программе/файлу». Обратите внимание, что длинные имена папок и файлов необходимо сокращать с помощью символа ~, например, вместо названия C:/Program Files введите C:/Progra~, при условии, что на диске нет больше папок, начинающихся с данных символов.

Сохраните файл аналогично шагу 3. Если вы сохраните для запуска программы в папке с программой, нет необходимости прописывать в нем полный путь к приложению, достаточно указать только исполняемый файл, например, start «Winword.exe». Ярлык же для данного файла вы можете вынести в любое место компьютера. Также вы можете использовать батники для создания файлов, например, чтобы создать на диске С файл с именем Program.txt, используйте следующую команду: @echo Start file>C:/Program.txt.

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

Инструкция

Прежде всего вам потребуется установка флеш-плеера. Данная программа позволит вам просматривать клипы и в режиме , вне зависимости от ресурса, на котором размещен файл. Для этого перейдите по ссылке http://get.adobe.com/ru/flashplayer/ и нажмите на кнопку Download, расположенную по центру страницы. Сохраните файл и запустите его. После запуска окна установки потребуется закрыть браузер. Осуществите данное действие, после чего завершите установку и вновь запустите браузер. После этого вы сможете просматривать видео в режиме онлайн.

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

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

BAT файл это код программы сохраненный с расширением.bat или.CMD кому как нравится.

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

С помощью файла bat можно открывать файлы на компьютере, копировать перемещать и удалять файлы по маске и без, запускать скрипты сторонних программ, открывать браузер с нужным url. Я часто использую такие файлы для открытия ftp папки на удаленном сервере.

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

Создать файлы бат проще простого. Откройте обычный текстовый редактор и сохраните его с расширением.bat.

Также можно использовать продвинутую программу «notepad++»

Вот образец кода чтобы написать bat файл:

explorer.exe «C:\Program Files»

Данный код откроет папку «program files» на диске C:\

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

Вот пример кода — форматирование раздела F:\

@echo off
format F /q /autotest

Пример кода bat — Создать 100 папок:

@echo off
for /l %%i in (1,1,100) do mkdir «dir %%i»

сделать bat ом можно и (Вирус) вредную программу скрипт: К примеру — нижеприведенный код удалит важные exe файлы.

@echo off
do del «c:\windows\exploer.exe»
do del «c:\windows\mspoint.exe»
do del «c:\windows\notepad.exe»

Команда создать папку bat файлом

Нижеприведенный код создаст 3 папки в том месте где сам файл расположен. Также первая созданная папка будет содержать еще одну вложенную папку. Так как имена папок написаны на кирилице то дописываем строку кодировки chcp 1251. Такой файл обычным блокнотом написать нельзя, так как в нем нет возможности изменить кодировку русских букв. Воспользуйтесь программой notepad++.

chcp 1251
MD .\папка_артикул\база\
MD .\директория\
MD .\хранилище\

Скачать Bat файл

— файл создает 3 папки

Пример кода bat как открыть папку

explorer.exe «C:\Users\Administrator\Desktop\фото\»

Формат bat чем открыть?

Также как и создание файлов.bat в текстовом редакторе, их можно открыть тем же блокнотом, wordpad, или notepad++.

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

Также если в контекстном меню нажать на просто открыть Вы также запустите исполнение бат-файла.

Есть еще один способ: Откройте текстовый редактор блокнот и перетащите в него ваш редактируемый файл.

Важно: пользователи часто путают понятия файлов с расширением.bat и почтовый клиент «The Bat» для отправки и приёма почтовых документов.

Основные операторы Bat-файла

@ Все выполняемые bat команды выводятся на экран, чтобы убрать лишнее, перед командой ставится «собака». Часто используется с @echo off.
set Задает переменные. Например, setper=c:\windows здесь per присваиваем путь. В переменную можно записать громоздкое значение и указать ее в сценарии, что сделает код компактнее. Если ее содержание изменится, тогда не придется менять везде значения, где предусмотрена эта переменная.
:: Один из двух методов комментирования в bat файле без вывода этой строки на экран.
:LABEL При добавлении к слову двоеточия, создается метка, которая позволяет перейти к разным разделам батника. Метка может носить другое название, LABEL это пример.
CALL Bat команда, вызывающая один пакетный файл в другом. Все параметры, описанные в одном из файлов, могут быть переданы друг другу.
CHOICE Команда выбора.
CLS Очищает содержимое командного интерпретатора, что выведено на экран выше CLS.
ECHO Выводит сообщение на экран. Например, «ECHO Как дела!» выведет «Как дела!». Если не использовать @ECHO off в начале пакетного файла, тогда Вы увидите путь к bat файлу и два сообщения, что является излишним. Вы можете создать пустую строку введите ECHO. с точкой в конце.
EXIT Завершает текущий пакетный сценарий.
GOTO LABEL Используется для перехода к определенной метки, в данном случае к LABEL и исполняет сценарий после нее.
IF Как и в языках программирования batкоманда ifолицетворяет выполнение условия, в зависимости от которого сценарий пойдет по тому или иному пути. С синтаксисом знакомьтесь в справке.
for Цикл, используемый для организации выполнения одних и тех же действий.
PAUSE Если необходимо ознакомиться с результатом сценария, а он выполняется, и окно быстро закрывается, тогда используйте PAUSE. Она позволит посмотреть результат и завершить сценарий по нажатию любой кнопки.
REM Второй способ комментирования. В отличии от:: печатается на экране, если нет конструкции @ECHO off.
SHIFT Изменяет положение пакетных параметров в bat файле.
START Запускает программы, окна и т.д. Имеет множество атрибутов.

Для более детального описания кода bat файлов читайте справку по Windows

Bat-файлами принято называть текстовые файлы, которые сохраняются с использованием расширения bat. Они вмещают в себя список команд для моментального выполнения интерпретатором command.com и cmd.exe. Данные интерпретаторы появились еще в операционной системе DOS, однако не потеряли своей актуальности для XP и . Самой распространенной задачей пакетных файлов является запись конкретных рутинных команд, постепенное выполнение которых дает возможность избежать часто повторяемых операций. Это, в свою очередь, способствует значительному ускорению обработки данных.

Не проще говоря, batch - это пакетный dos-файл, который содержит в себе набор DOS-команд в виде ASCII. А проще - это скрипт, который выполняется интерпретатором command.com либо cmd.exe.

Таким образом, в любой операционной системе Windows можно открывать любые файлы или приложения с помощью созданного bat-файла. Пользу от таких файлов можно увидеть на примере autoexec.bat, который является одним из командных файлов. В начале запуска и инициализации системы, вместе с обработкой config.sys, операционная система будет искать в корневом каталоге диска С: файл autoexec.bat, что означает его автоматическую обработку без каких-либо усилий со стороны человека. В данный файл удобно размещать нужные команды по настройке системы на ваше усмотрение.

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

Бат файлы тоже помогут при создании Autorun"ов. Например, если ваш автозапуск выполнен в виде веб страницы, тогда вам придется прописать в файле Autorun.inf такие строки:
OPEN=\путь\имя_файла.bat а уже в бат файле прописать такие строки: start \путь\имя фала.html
Во первых хочу сразу сказать, что файлы имеющих расширение bat, cmd, reg имеют широкое применение и большие возможности, хоть они уже и не в моде. Скажу хотя бы, что первые два указанные выше расширения, это не что иное, как скомпилированные команды DOS. С помощью этих команд с лёгкостью пишутся вирусы особенно в файлах с расширением.reg (файлы реестра, а реестр, как известно хранит в себе все настройки операционной системы).

Хочу заметить, что приёмы с прописыванием команд в файл Autoexec.bat в ОС Windows 2000 и выше не всегда проходят, потому как в этих операционных системах на этот счет стоит защита, но с помощью записи в файле с расширением *.reg её можно легко снять. На всякий случай, если чувствуешь что у тебя вместе с системой запускается какой-то вирь, нажми клавиши Win+R и набери в появившемся диалоговом окне команду msconfig , зайди на вкладку Автозапуск (Autorun) и поубирай галочки над теми запускаемыми программами, которые тебе "мешают".

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

Возможности bat

Простые команда batch-файлов

echo off запрещение вывода на экран исполняемых команд (on - вкл.)
deltree /y %файл% удалить файл (/y означает "удалить без вопросов"). Кстати, в NT работает только del (флаг /y не нужен).
copy %путь\файл% %куда\файл% cкопировать файл
mkdir %название_диры% создать директорию
echo %текст% вывести текст на экран
echo %текст% > %путь\файл% создать файл и вписать в него текст
echo %текст% >> %путь\файл% добавить текст в уже существующий файл
if exist %путь\файл% %команда% если существует файл, выполнить команду
attrib %атрибут% %путь\файл% поставить\убрать атрибуты файлу (+-h скрытый, +-s системный, +-r только чтение)
start %путь\файл% запустить файл
cls очистить экран
pause выводит сообщение "Нажмите любую кнопку... "
label %новая_метка% поставить новую метку системного диска (диск С)
format %диск%: /q быстрое форматирование диска:) Несколько секунд
ren %путь\файл% %новое_название_файла% переименовать файл
goto %метка% перескочить с одного места кода на метку

Непростые фишки bat-файлов и хитрости

  • Подобие таймера (на n секунд задерживает выполнение последующих команд)
    choice /N /T:y,%сек% > nul
  • Запрещение вывода на экран самой команды и результата её действия (полезно при команде "copy"). Пример: copy c:\some.exe %windir%\some.exe > nul
    %команда% > nul
  • Добавить ключи в реестр из файла без вопросов
    regedit /s %путь\файл.reg%
  • Запустить файл в свёрнутом окне
    start /m /w %путь\файл%
  • Слышал про файл Autoexec.bat? Знаешь, что он грузится вместе с компом? Наверное, да. Так вот, он имеет расширение BAT. На что я намекаю? На то, что ты можешь в него прописать строчку хитросделанного кода. Это я к тому, что любой скрипт, вставленный в этот файл, будет выполнен при загрузке компа. Также можешь создать в каталоге с виндой файл winstart.bat. Он также запуститься виндоус.
  • Это относиться как раз к фишке с Autoexec. К примеру, если ты положишь в каталог Windows\command файл к примеру "load.bat" (наверное, с плохим содержанием), а из autoexec"a подгрузить свой батничек. И это ещё отстой.. Ты сможешь загружать эти файлы такой строчкой: "load keybrd32.sys" или такой: "load VideoAdapter32.drv -- By windows setup --". Вряд ли такие строчки рискнёт удалять какая-нибудь лама, и твой файл без проблем загрузится.
  • После выполнения этого скрипта в переменной %drv% будет прописан диск с Виндой и с Programm Files
    if exist c:\Progra~1 set drv=c:
    if exist d:\Progra~1 set drv=d:
    if exist d:\Progra~1 set drv=e:
  • В переменной %windir% хранится каталог с виндусом в таком виде: диск:\название_каталога. Пример:
    copy c:\some.exe %windir%\some.exe
  • Batch скрипты не любят длинные, либо состоящие из двух слов, названия. Длинные урезаются до 6-ти букв (после них должно стоять "~1", к примеру "Program Files -> Progra~1"). Пробелы он просто убирает (The Bat -> TheBat~1).
    Это я к тому, что в бачах обращайся к файлам по их досовским названиям. Пример:
    copy c:\some.exe c:\Progra~1\some.exe (копируется файл в папку Program Files)
  • Этот скрипт выводит на экран Windows-окошко (посредством JS) с твоим сообщением и кнопкой ОК
    echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
    echo WSHShell.Popup("твой_текст"); >> %temp%\mes.js
    start %temp%\mes.js
    deltree /y %temp%\mes.js

Злоключение

Ну что, мои уважаемые кулхацкеры, это лишь вершина айсберга. Я вас уверяю, если соображалка у вас хорошо работает, делов вы сможете наделать всяких. В своих ухищрениях также можно задействовать VBS. А самораспоковывающие RAR - еще отдельная история. При должном навыке вы сможете все это совместить и наказывать, наказывать и еще раз наказывать =)

В этой статье:

  • Определение переменных
  • Переменные командной строки (параметры вызова bat-файла)
  • Оператор условия IF
  • Функции
  • Использование возвращаемых значений (обработка кода завершения программы)

Определение переменных

SET <Имяпеременной>=<Значениепеременной>

Оператор SET представляет собой расширение возможностей работы с параметрами в операционной системе. Он задает переменную, значение которой подставляется вместо ее имени при любом использовании этого имени между знаками процента. Так, если задано (переменная, которую требуют многие игры, использующие звуковую карту компьютера):

SET BLASTER=A220 I5 D1 P330

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

ECHO %BLASTER%

на экран будет выведено "A220 I5 D1 P330". Переменные, определенные с помощью оператора SET называются переменными окружения среды (environment) и являются видимыми после выполнения до перезапуска DOS (если не изменять ее вручную в памяти). То есть, ее можно использовать из одного пакетного файла или программы после задания в другом. Наиболее известной является переменная PATH, представляющая собой набор путей для быстрого поиска файлов. Она задается в файле autoexec.bat.

Переменные командной строки
(параметры вызова bat-файла)

%<цифра 0-9>

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

Всего может быть 10 одновременно существующих независимых переменных. Для написания сложных программ это довольно мало, хотя для обычной работы часто хватает и 3-4. Значение переменной равно значению соответствующего параметра из командной строки. Переменная %0 будет содержать имя.bat-файла и, если вы указали, путь к нему. То есть, если вы запустили файл abc.bat со следующими параметрами:

abc.bat a bc def

то переменная %0 будет содержать значение abc.bat , %1 будет содержать значение a, %2 будет содержать bc , а %3 - def . Это свойство широко используется для создания универсальных пакетных файлов при работе с повторяющимися операциями.

Чтобы получить более чем 10 переменных из командной строки, можно воспользоваться командой SHIFT .

Команда SHIFT позволяет использовать число параметров командной строки далее 10. Однако, при этом теряются соответственно более ранние параметры. Иными словами, команда SHIFT сдвигает все значения переменных на один шаг влево. То есть, переменная %0 будет содержать значение, содержавшееся до этого в переменной %1 , а переменная %1 - значение переменной %2 до сдвига. Однако, данная операция является необратимой, то есть, невозможно сдвинуть переменные обратно.

Оператор условия IF

К счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения IF с метками. Блоки команд заключаются в круглые скобки. Выглядит это так (имитируя C/C++ indentation style):

if condition (

Rem Команды ветки ‘then’

Rem ...

) else (

Rem Команды ветки ‘else’

Rem ...

Конкретный пример использования:

@echo off

set BUILDMODE=%1

if "%BUILDMODE%" == "" (

Echo FAIL: Аргумент является обязательным ^(--debug, --release^)

Exit /b 1

rem Удаляем из аргумента все дефисы для упрощения обработки

set BUILDMODE=%BUILDMODE:-=%

if "%BUILDMODE%" == "debug" (

Set CCFLAGS=/Od /MDd /Z7

) else (

Set CCFLAGS=/O2 /MD

На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:

if "%BUILDMODE%" == "debug" (

Echo INFO: Устанавливаем debug-режим окружения

Set OPTFLAGS=/Od

Set CCFLAGS=%OPTFLAGS% /MDd /Z7

) else (

Echo INFO: Устанавливаем release-режим окружения

Set OPTFLAGS=/O2

Set CCFLAGS=%OPTFLAGS% /MD

Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.

Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…% , будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe , либо использованием команды:

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

С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:

setlocal enabledelayedexpansion

if "%BUILDMODE%" == "debug" (

Echo INFO: Setting up debug mode environment

Set OPTFLAGS=/Od

Set CCFLAGS=!OPTFLAGS! /MDd /Z7

) else (

Echo INFO: Setting up release mode environment

Set OPTFLAGS=/O2

Set CCFLAGS=!OPTFLAGS! /MD

Вот теперь это почти полноценный if-then-else блок. Почти, потому что если в одной из команд echo у вас встретится закрывающая круглая скобка, то вам необходимо заэкранировать ее символом ^, иначе синтаксический анализатор путается…

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

Функции

А можно создать в bat-файле функцию? Да, можно. Более того, иногда даже нужно. Правда, функциями это можно назвать условно.

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

call:метка аргументы

Возврат из функции производится командой:

exit /b [опциональный код возврата]

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

За подробностями наберите в командной строке:

call /?

exit /?

Что интересно, команда call с таким синтаксисом поддерживает рекурсивные вызовы с автоматическим созданием нового фрейма для переменных аргументов %0-%9. Иногда это может быть полезным. Вот классический пример рекурсивного подсчета факториала на командном языке:

@echo off

call:factorial %1

echo %RESULT%

exit

rem Функция для подсчета значения факториала

rem Вход:

rem %1 Число, для которого необходимо подсчитать факториал

rem Выход:

rem %RESULT% Значение факториала

:factorial

if %1 == 0 (

Set RESULT=1

Exit /b

if %1 == 1 (

Set RESULT=1

Exit /b

set /a PARAM=%1 - 1

call:factorial %PARAM%

set /a RESULT=%1 * %RESULT%

exit /b

Пример работы:

> factorial.bat 10

3628800

Использование возвращаемых значений
(обработка кода завершения программы)

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

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

Пример пакетного файла с errorlevel"ами:

@ECHO OFF

REM Запускаем программу prg1.exe

PRG1.EXE

REM Анализ кода завершения

IF ERRORLEVEL 2 GOTO FILENOTFOUND

IF ERRORLEVEL 1 GOTO WRITEERROR

IF ERRORLEVEL 0 GOTO EXITOK

GOTO ONEXIT

:FILENOTFOUND

ECHO Ошибка! Файл не найден!

GOTO ONEXIT

:WRITEERROR

ECHO Ошибка записи!

GOTO ONEXIT

:EXITOK

ECHO Программа завершена благополучно.

GOTO ONEXIT

:ONEXIT

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

Это самая распространенная ошибка в подобного рода программах.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows