Как запустить скрипт в cmd

от admin

Batch script для начинающих

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

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

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

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

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

test.battest.bat

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

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

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

не эта :)

не эта 🙂

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

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

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

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

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

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

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

Таблица

Таблица

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

Переменные

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

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

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

Переменной можно присвоить ТОЛЬКО числовое значение

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

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

Если добавить флаг «/p», то выводиться значение после символа » bash»>@echo off set /p a=Enter str echo %a% pause

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

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

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

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

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

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

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

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

Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ) ⁠ ⁠

Хэллоу пикабушник. Я хочу, чтобы ты понял весь программный язык cmd(bat) на понятном языке. Ну, давай приступим?

Для начала Разберем, что такое cmd(bat) и с чем его едят?

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

Как открыть командную сроку(cmd.exe)

И так, давайте создадим на рабочем столе текстовый документ, а далее впишем в него

Для вывода сообщения в BAT файлах используется команда echo: Вывод сообщений и переключение режима отображения команд на экране. ECHO [ON. OFF] ECHO [сообщение] Ввод ECHO без параметров позволяет выяснить текущий режим отображения команд.

В данном случае напишем @Echo off

После напишем такую строку A: Что это такое? Это так сказать, строка, позволяющая делать оборот(обратно выполнять функции,команды после этой строки)

Далее после A: напишем, echo HELLO MY FRIEND (тут вышла ошибочка, пишем :A, а не A: )

echo — команда, позволяющая показывать сообщения, в моем случае это «HELLO MY FRIEND«

После давайте напишем команду, которая будет открывать окно, в данном случае это команда «Start»

Команда START — запуск приложения в новом окне

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

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

START [«заголовок»] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | REALTIME| /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [команда/программа] [параметры]

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

«заголовок» — заголовок окна. Обязательно в двойных кавычках.

путь — рабочий каталог.

B — запуск приложения без создания нового окна с отключением обработки сочетания клавиш CTRL+C. Если приложение не обрабатывает сочетание клавиш CTRL+C самостоятельно, единственным способом его прерывания является использование сочетания клавиш CTRL+Break.

I — Новой средой станет исходная среда, переданная cmd.exe, а не текущая среда.

MIN — Запуск команды/программы в свернутом окне.

MAX — Запуск команды/программы в развернутом окне.

SEPARATE — Запуск 16-разрядной программы Windows в отдельной области памяти.

SHARED — Запуск 16-разрядной программы Windows в общей области памяти.

LOW — Запуск приложения с приоритетом IDLE (самый низкий приоритет).

NORMAL — Запуск приложения с приоритетом NORMAL.

HIGH — Запуск приложения с приоритетом HIGH.

REALTIME — Запуск приложения с приоритетом REALTIME (самый высокий приоритет).

WAIT — Запуск приложения с ожиданием его завершения.

ABOVENORMAL — Запуск приложения с классом приоритета ABOVENORMAL (выше стандартного)

BELOWNORMAL — Запуск приложения с классом приоритета BELOWNORMAL (ниже стандартного)

команда/программа — Если это внутренняя команда cmd.exe или пакетный файл, обработчик команд (cmd.exe) запускается с ключом /K. Это означает, что окно не будет закрыто после завершения команды. Если это не внутренняя команда cmd.exe и не пакетный файл, значит, это программа, которая будет запущена в графическом или текстовом окне.

Но давайте напишем start http://google.com — при данное команде, будет открываться гугл.

После напишем echo I KILLED YOUR WINDOWS (Мини шуточка пхпх) — команда которая будет выводить текст. И на последок пишем goto A (для работы круга)

Вот как все это должно выглядеть

Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ) Туториал, Как создать батник, Как создать вирус, Вирус, Длиннопост

Нажимаем «Файл» «Сохранить как» Рабочий стол

Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ) Туториал, Как создать батник, Как создать вирус, Вирус, Длиннопост

Тип файла выбираем «Все файлы» и к названии вашего файла(в моем случае пикабу) приписываем .bat

Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ) Туториал, Как создать батник, Как создать вирус, Вирус, Длиннопост

Все, теперь открываем и проверяем!

Теперь можем видеть такую картину:

Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ) Туториал, Как создать батник, Как создать вирус, Вирус, Длиннопост

в вк вы можете попросить меня скинуть вам немножко жоще батник xD

Как сделать распараллеливание с помощью cmd?

Вызов одной программы после неё вызов ещё сорока, которые должны работать параллельно. После того как те сорок отработают вызов тех, которые должны отработать последовательно.

А как можно открыть фай батником из папки в которой он находится?

Меня хотят засудить за пост о тухляке в сети разливаек :(⁠ ⁠

Меня хотят засудить за пост о тухляке в сети разливаек :( Пиво, Суд, Екатеринбург, Негатив, Коммерческая тайна

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

Говорит, что хочет засудить по закону о коммерческой тайне.

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

Добрый день, А. А. , не мне вас учить как составлять досудебную претензию. Прошу направить претензию на моë имя с описью вложеного до востребования в отделении Почты России
ул. 8 Марта, 57, 620063. Прошу вложить в конверт, мою копию ГПХ, подписанную Вами и с печатью (Наконец-то я увижу его в таком виде в первый раз) . А также информацию передачи о начале и прекращению договора в СФР, подтверждение уплаты НДФЛ и Страховых взносов (вы же это делали?). В претензии приложить документ с моей подписью, где я уведомлен о коммерческой тайне. Приложить перечень что в компании считается коммерческой тайной.

И купить хотя бы печать, чтобы можно маркировать что коммерческая тайна, а что нет, но это я так. Вы же не упустили этот момент?

Отец в Нью-Гэмпшире (США) пришёл на заседание школьного совета в костюме Юлия Цезаря в знак протеста против гендерной политики учителя⁠ ⁠

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

Отец в Нью-Гэмпшире (США) пришёл на заседание школьного совета в костюме Юлия Цезаря в знак протеста против гендерной политики учителя Гай Юлий Цезарь, Гендерные вопросы, ЛГБТ, США, Школа, Отец

«Ваш долг — действовать в интересах детей. Учить правде, а не лжи. Фактам, а не выдумкам. Биологии, а не социальной повестке. Будучи налогоплательщиками, мы заслуживаем, чтобы наших детей учили тому, за что мы платим. И это не социальная повестка, будь она с правым или левым уклоном», — отметил Гульельмо.

Американцы показали доказательства, что украинцы все таки взорвали Северный поток⁠ ⁠

Американцы показали доказательства, что украинцы все таки взорвали Северный поток

Плохое настроение⁠ ⁠

В студенческие годы я жил в oбщaгe, сосед по комнате был немного дeпpeccивным и былa у него особенная фишкa. Cтoилo eму поругаться co cвoeй дeвушкoй, в учебе где то не успевал или пpocтo не было нacтpoeниe, то он садился и нaчинaл лeпить пeльмeни. B мopoзилкe вceгдa лeжaл гoтoвый фapш, в шкафу у нас всегда был пакет муки, пoэтoму oн включaл ceбe гpуcтную музыку и мог просидеть так больше двух часов за столом. Зa такой один присест мoг cлeпить 300-400 штук, пoтoм когда они замораживались, он раскладывал пo пакетам и oтдaвaл мнe и нашим соседям по этажу. Зoлoтoй был чeлoвeк, вспоминаю его по сей день. Жaль, чтo кoгдa у мoeй жeны плoxoe нacтpoeниe, oнa нe лeпит пeльмeни, a пpocтo пи*дит.

Это гениально я считаю⁠ ⁠

Это гениально я считаю Atomic Heart, Юмор, Близняшки (Atomic Heart), Твикс, Картинка с текстом

Это гениально я считаю Atomic Heart, Юмор, Близняшки (Atomic Heart), Твикс, Картинка с текстом

Константин Плотников, сыгравший Михаила Горшенёва в сериале «Король и Шут», подрабатывает дворником⁠ ⁠

Константин Плотников, сыгравший Михаила Горшенёва в сериале «Король и Шут», подрабатывает дворником Король и Шут, Актеры и актрисы, Российское кино, Михаил Горшенев, Дворник, Из сети, Фотография, Русские сериалы

Костя убирает территорию возле Александро-Невской лавры в Санкт-Петербурге. После премьеры сериала ему даже повысили зарплату.

Купите, твари, наушники⁠ ⁠

Бесит. Прям пичот.
Сколько раз уже сталкиваюсь с таким. Придут, сядут рядом/в комнате/на лавочке/в заведении, достанут телефон, откроют блядский тик-ток, Ютуб, что ещё там есть и, сука, громко смотрят ролики. Особенно это касается коротких роликов, которые на минуту и друг за другом идут подряд. Пять секунд одной громкой хрени, три секунды второй, опять три секунды первой хрени (нахуй ты блядь листал дальше и теперь опять возвращаешься и снова дальше листаешь, у тебя кретин ёбаный что, пальцы не слушаются?). И так короткими звуковыми волнами вся эта блядская музыка/басы/голоса выносят мозг. И что характерно, они даже звук не убавляют. Фильм смотрят- регулируют громче/тише, а тут пол часа телефон орёт разрывается, и сидят как ёбаные зомби, смотрят.
Купите, сука, наушники! Они продаются! Их можно прийти и прям с полки своими двумя руками взять. Боженька дал вам две руки именно для этого, чтобы вы могли ими что-нибудь взять. Так возьмите, блять, наушники и засуньте их себе в блядские уши.
Всё, я ебанулся, пойду водички попью.

Ответ kaegoorn48 в «Ситуации, когда человек строит из себя эксперта, не зная, что вы в этом деле профессионал» корчишь из себя профи⁠ ⁠

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

Считаем бумагу⁠ ⁠

Бумага формата А4 под названием «Снегурочка», от компании Mondi.

Заявлено: 500 шт.

Считаем бумагу Бумага, Длиннопост, Обман, Подсчет, Лига Счетоводов

В стопке 25 листов. Пересчитывал 2 раза.

Считаем бумагу Бумага, Длиннопост, Обман, Подсчет, Лига Счетоводов

Я раньше считал бумагу на регулярной основе и именно у Снегурочки всегда было меньше, чем заявлено (на 10 листов бывало). Кому не лень — посчитайте свою. Это мне так не везёт или они всегда меньше фасуют, чем заявлено и оплачено?

PS: Без рекомендованных тегов не даёт опубликовать а предлагает не то, что нужно.

И жили они долго. ⁠ ⁠

И жили они долго. Юмор, Картинка с текстом, Брак (супружество), Археология, Мумия, Зашакалено

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте⁠ ⁠

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

Компания «Мегафон» обновила мобильное приложение и решила передавать персональные данные (ПД) клиентов компаниям по выдаче микрозаймов и кредитов. Разработчики скрыли галочку «не согласен» в тексте нового соглашения. Пользователям нужно пролистать его до самого конца, найти строчку с отказом от услуги и только потом нажать большую зелёную кнопку «согласен».

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

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

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

Ранее у «Мегафона» уже была подобная услуга, а для отказа от неё нужно было выполнить запрос с помощью ussd-команды: *105*1968#.

Оригинал статьи прочёл на Хабре

Строгий контроль⁠ ⁠

Недавно вернулся из Израиля и заметил, что самый строгий контроль безопасности в аэропорту Бен Гурион. Проверяют очень тщательно и очень медленно. Заставляют несколько раз включать и выключать телефон, ноутбук, снимать обувь, открывают сумки, щупают руками. Но мне не повезло больше других. Мои ботинки вызвали какие-то подозрения и они надолго застряли в сканере. Несколько человек с умным видом смотрели на экран, а потом лоток с моей обувью забрал человек в форме, сказав лишь, что требуется дополнительная проверка. Больше свою обувь я так и не увидел. Несколько раз подходил к этим людям в форме, но они ли говорили, что ничего не знают. Пришлось ходить по аэропорту и лететь в Москву в носках.

Талантище⁠ ⁠

В детстве мама давала мне сдачу и я всегда клал её в копилку. Когда мама нашла эту копилку, спросила зачем? Я сказал, что хочу купить ей шубу, которую папа не хотел покупать. Мама расплакалась и на следующий день мне купили велик, на который я кстати и копил. Ведь талант пиздеть у меня был с раннего детства.

Откуда эти люди?⁠ ⁠

Ребят, а кто-нибудь понимает, что на тиндере происходит вообще?

Категория 25-32 почти вся саморазвивается, не сидит на месте, путешествует, постоянно пробует что-то новое, танцует бачату и катается на сноубордах.

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

Филиал профи ру какой-то.

Пакет⁠ ⁠

Полтора года я носил на тренировку все свои гигиенические принадлежности в пакете. Пакет был Вайлдберриз, выданный еще бесплатно вместо с каким-то заказом.
Первые полгода он был по-прежнему яркий и радовал своей сохраняющейся герметичностью. Он был такой один на всю душевую тренировочного зала. Я даже подумывал, что многие мужики мне втайне завидуют — ведь свой пакет я мог увидеть его из далека, он радовал своей плотностью и фактурностью, и из него еще ничего не вываливалось — потому что он был НОВЫЙ.
Спустя первые месяцы, как и преданный ухажер после регистрации брака, пакет начал жухнуть, блекнуть и продырявливаться. Но я стойко носил в нем на тренировку гель и мочалку, несмотря на уже ощутимые дырки, и попытки разным жидкостям, оставшимся после душевой сочиться из него прямо в рюкзак.

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

Читать:
Когда напряженность поля равна нулю

Короче дожили мы с пакетом до нашего полиэтиленового юбилея совместной жизни в полтора года.
Я до сих пор помню тот день в феврале, когда я складывал в него на балконе гель и мочалку, которые сиюсекундно, не задерживаясь в чреве моего любимого, оказались на полу. Увы. Цветом он уже был похож на бордово-белое месиво из красок и букв. Мне пришлось с ним расстаться, приняв так долго откладываемое мучительное решение.

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

НО вчера я увидел нечто, что повергло меня в шок.
Я увидел образец и эталон полиэтиленовой верности и я не смог пройти мимо.

Windows Batch Scripting: Getting Started

Windows batch scripting is incredibly accessible – it works on just about any modern Windows machine. You can create and modify batch scripts on just about any modern Windows machine. The tools come out of the box: the Windows command prompt and a text editor like Notepad.exe. It’s definitely far from the best shell scripting langauge, but, it gets the job done. It’s my “duct tape” for Windows.

Launching the Command Prompt

Windows gurus launch the command prompt using the keyboard shortcut Windows Logo Key + R (i.e., “Run”) > Type cmd.exe then Enter . This is way faster than navigating the Windows Start Menu to find the Command Prompt.

Editing Batch Files

The universal text editor for batch files is Notepad ( Windows Logo Key + R > Type notepad then Enter ). Since batch files are just ASCII text, you can probably use just about any text editor or word processor. Very few editors do anything special for Batch files like syntax highlighting or keyword support, so notepad is good enough fine and will likely be installed on just about every Windows system you encounter.

Viewing Batch Files

I would stick with Notepad for viewing the contents of a batch file. In Windows Explorer (aka, “My Computer”), you should be able to view a batch file in Notepad by right clicking the file and seleting Edit from the context menu. If you need to view the contents within a command prompt window itself, you can use a DOS command like TYPE myscript.cmd or MORE myscript.cmd or EDIT myscript.cmd

Batch File Names and File Extensions

Assuming you are using Windows XP or newer, I recommend saving your batch files with the file extension .cmd . Some seriously outdated Windows versions used .bat , though I recommend sticking with the more modern .cmd to avoid some rare side effects with .bat files.

With the .cmd file extension, you can use just about filename you like. I recommend avoiding spaces in filenames, as spaces only create headaches in shell scripting. Pascal casing your filenames is an easy way to avoid spaces (e.g., HelloWorld.cmd instead of Hello World.cmd ). You can also use punctuation characters like . or — or _ (e.g. Hello.World.cmd , Hello-World.cmd , Hello_World.cmd ).

Another thing with names to consider is avoiding names that use the same name of any built-in commands, system binaries, or popular programs. For example, I would avoid naming a script ping.cmd since there is a widely used system binary named ping.exe . Things might get very confusing if you try to run ping and inadvertently call ping.cmd when you really wanted ping.cmd . (Stay tuned for how this could happen.) I might called the script RemoteHeartbeat.cmd or something similar to add some context to the script’s name and also avoid any naming collisions with any other executable files. Of course, there could be a very unique circumstance in which you want to modify the default behavior of ping in which this naming suggestion would not apply.

Saving Batch Files in Windows

Notepad by default tries to save all files as plain jane text files. To get Notepad to save a file with a .cmd extension, you will need to change the “Save as type” to “All Files (.)”. See the screenshot below for an example of saving a script named “HelloWorld.cmd” in Notepad.

Screenshot of saving a batch file in Notepad

SIDEBAR: I’ve used a shortcut in this screenshot that you will learn more about later. I’ve saved the file to my “user profile folder” by naming the file %USERPROFILE%\HelloWorld.cmd . The %USERPROFILE% keyword is the Windows environmental variable for the full path to your user profile folder. On newer Windows systems, your user profile folder will typically be C:\Users\<your username> . This shortcut saves a little bit of time because a new command prompt will generally default the “working directory” to your user profile folder. This lets you run HelloWorld.cmd in a new command prompt without changing directories beforehand or needing to specify the path to the script.

Running your Batch File

The easy way to run your batch file in Windows is to just double click the batch file in Windows Explorer (aka “My Computer”). Unfortunately, the command prompt will not give you much of a chance to see the output and any errors. The command prompt window for the script will disappear as soon as the script exits. (We will learn how to handle this problem in Part 10 – Advanced Tricks ).

When editing a new script, you will likely need to run the batch file in an existing command window. For newbies, I think the easiest foolproof way to run your script is to drag and drop the script into a command prompt window. The command prompt will enter the full path to your script on the command line, and will quote any paths containing spaces.

Some other tips to running batch files:

  • You can recall previous commands using the up arrow and down arrow keys to navigate the command line history.
  • I usually run the script as %COMPSPEC% /C /D «C:\Users\User\SomeScriptPath.cmd» Arg1 Arg2 Arg3 This runs your script in a new command prompt child process. The /C option instructs the child process to quit when your script quits. The /D disables any auto-run scripts (this is optional, but, I use auto-run scripts). The reason I do this is to keep the command prompt window from automatically closing should my script, or a called script, call the EXIT command. The EXIT command automatically closes the command prompt window unless the EXIT is called from a child command prompt process. This is annoying because you lose any messages printed by your script.

Comments

The official way to add a comment to a batch file is with the REM (Remark) keyword:

The power user method is to use :: , which is a hack to uses the the label operator : twice, which is almost always ignored.

Most power authors find the :: to be less distracting than REM . Be warned though there are a few places where :: will cause errors.

For example, a FOR loop will error out with :: style comments. Simply fall back to using REM if you think you have a situation like this.

Silencing Display of Commands in Batch Files

The first non-comment line of a batch file is usually a command to turn off printing (ECHO’ing) of each batch file line.

The @ is a special operator to suppress printing of the command line. Once we set ECHO’ing to off, we won’t need the @ operator again in our script commands.

You restore printing of commands in your script with:

Upon exit of your script, the command prompt will automatically restore ECHO to it’s previous state.

Debugging Your Scripts

Batch files invole a lot of trial and error coding. Sadly, I don’t know of any true debugger for Windows batch scripts. Worse yet, I don’t know of a way to put the command processor into a verbose state to help troubleshoot the script (this is the common technique for Unix/Linux scripts.) Printing custom ad-hoc debugging messages is about your only option using the ECHO command. Advanced script writers can do some trickery to selectively print debugging messages, though, I prefer to remove the debugging/instrumentation code once my script is functioning as desired.

Posted by Steve Jansen Mar 1 st , 2013 batch, scripting, shell, windows

Comments

Hi, I’m Steve. I’m a software developer loving life in Charlotte, NC, an (ISC) 2 CSSLP and an avid fan of Crossfit.

And, no, I’m not Steve Jansen the British jazz drummer, though that does sound like a sweet career.

Как создать bat-файл в Windows 7/10 – редактируем и сохраняем батник

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

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

Как создать файл с расширением BAT

Итак, как создать 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. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.

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

kak-sozdat-bat-fail-4

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

kak-sozdat-bat-fail-5

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

kak-sozdat-bat-fail-6

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

kak-sozdat-bat-fail-7

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

kak-sozdat-bat-fail-8

kak-sozdat-bat-fail-9

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

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

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

kak-sozdat-bat-fail-10

kak-sozdat-bat-fail-11

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

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

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 путём к вашему батнику.

kak-sozdat-bat-fail-22

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

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

Related Posts