как написать скрипт для cmd windows
Скрипты для CMD
Выключение компьютеров в домене по списку
Единый логон-скрипт для AD
Моя попытка навести порядок и унификацию при подключении сетевых дисков в AD.
Возможна работа как через индивидуальные групповые политики, так и через политику AD по-умолчанию.
Идея состоит в следующем: храним описание вариантов подключений в текстовых файлах, с указанием группы для которой это работает, и анализируем при запуске грeппы конкретного пользователя с использованием dsget и dsquery.
Структура хранимых описаний такова: групповые и общедоменные назначачения хранятся в едином файле расположенном в корне NETLOGON(возможны варианты), а пользовательские назначения располагаются в папках с пользовательским именем входа в систему.
Также в отдельных файлах храним описание запускаемых скриптов для групп и пользователей.
Приветствуются пожелания по доработке 😉
Добавил ключ рекурсивного анализа вхождения в группы.
И на всякий случай тело скрипта в текстовом виде:
@ECHO OFF&CLS
(ECHO Обработка переменных со спецсимволами «(«, «)»,»&»,»|»,»>»,» команда»)
SET «AAA=сообщение()&|<>команда»
(ECHO Вывод на экран с обрамляющими двойными кавычками)
(ECHO ^(ECHO «%%AAA%%»^))
(ECHO «%AAA%»)
(ECHO Перенаправление значения переменной в файл file.txt с переводом строки то есть с CR/LF)
(ECHO с заменой существующего file.txt)
(ECHO SET /p»=%%AAA%%»^ file.txt^&ECHO.^>^>file.txt)
SET /p»=%AAA%» file.txt&ECHO.>>file.txt
(ECHO Перенаправление значения переменной в файл file.txt с переводом строки то есть с CR/LF)
(ECHO дописыванием в существующий file.txt)
(ECHO SET /p»=%%AAA%%»^ ^>file.txt^&ECHO. 1^>^>file.txt)
SET /p»=%AAA%» >file.txt&ECHO. 1>>file.txt
(ECHO Перенаправление значения переменной в файл file1.txt без перевода строки то есть без CR/LF)
(ECHO с заменой существующего file1.txt)
(ECHO SET /p»=%%AAA%%»^ file1.txt)
SET /p»=%AAA%» file1.txt
(ECHO Перенаправление значения переменной в файл file1.txt без перевода строки то есть без CR/LF)
(ECHO с дописыванием в существующий file1.txt)
(ECHO SET /p»=%%AAA%%»^ ^>file1.txt)
SET /p»=%AAA%» >file1.txt
(ECHO Вывод значения переменной на экран с переводом строки то есть с CR/LF)
(ECHO SET /p»=%%AAA%%»^ =^>%%»)
(ECHO SET «AAA=%%AAA:(=^(%%»)
(ECHO SET «AAA=%%AAA:)=^)%%»)
SET «AAA=%AAA:&=^&%»
SET «AAA=%AAA:|=^|%»
SET «AAA=%AAA: =^>%»
SET «AAA=%AAA:(=^(%»
SET «AAA=%AAA:)=^)%»
(ECHO ^(ECHO %%AAA%%^))
(ECHO %AAA%)
PAUSE
Кодировка приведенного скрипта CP866.
Для ознакомления рекомендуется выполнить 😉
Само-собой в случае вопросов постараюсь ответить.
Пишем программы (скрипты) в Блокноте Windows
С этой статьей вы не научитесь программировать и даже не напишите как таковую программу, но найдете здесь отличные VBS скрипты и BAT файлы, которые без проблем напишете в обычном блокноте Windows, сможете усовершенствовать по своему, потом похвастаться перед друзьями и близкими. Возможно это поднимет вам настроение и вы отлично проведете время.
Приступим
Научим компьютер здороваться
Set sapi=CreateObject(«sapi.spvoice»)
sapi.Speak «Hello!»
Один нюанс: если вы прописали в кавычках слова русскими буквами, а при запуске произносится непонятно что, то у вас просто не установлен русский голосовой движок. Подробная установка и настройка голосового движка выходит за рамки нашей статьи, поэтому более подробно ознакомьтесь здесь и вновь возвращайтесь сюда.
Все просто, программу (скрипт) добавить в автозагрузку можно таким же образом, то есть через такой же VBS скрипт. Создаем файл в блокноте, копируем/вставляем (Ctrl+C/Ctrl+V) следующий код:
Dim vOrg, objArgs, root, key, WshShell
root = «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\»
KeyHP = «Program»
Set WshShell = WScript.CreateObject(«WScript.Shell»)
WshShell.RegWrite root+keyHP,»C:\Privet.vbs /autorun»
Открыть дисковод
Set a = CreateObject(«WMPlayer.OCX.7»)
Set b = a.CdromCollection
Set c = b.Item(0)
Set d = c.Eject
Есть более интересная модификация данного скрипта:
Set WMPlayer = CreateObject(«WMPlayer.OCX.7»)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop
В данном случае будет все время открываться-закрываться CD/DVD-привод, на ноутбуках в этом случае будет открываться после каждого его закрытия.
Внимание! Второй код (открытие-закрытие дисковода), некоторые антивирусы видят как вредоносную программу. Антивирус Касперского (в т.ч. и Kaspersky Free) его видит именно так и уничтожает сразу же. В первом же случае (просто открытие дисковода) для антивирусных программ не является вредоносным скриптом.
Чтобы прекратить автоматически открывать-закрывать дисковод необходимо:
Игра
Вы также можете изменять сообщения по своему, все что написано кириллицей без проблем редактируется. Не бойтесь сломать код. Поэкспериментируйте. В случае чего заново скопируйте рабочий код отсюда.
Ну и перед тем как переходить к батникам (.BAT) воспользуемся самым полезным VBS скриптом из всех перечисленных в этой статье.
Скрипт закрывающий wscript.exe
Set TaskKill = CreateObject(«WScript.Shell»)
TaskKill.Run «TaskKill /f /im wscript.exe»
По сути он делает тоже самое, что чуть выше объяснялось в диспетчере задач, как например нельзя просто взять и закрыть надоедливый скрипт открывающий-закрывающий дисковод, а запустив данный скрипт все запущенные будут закрыты. Это как клин клином вышибают.
Завершение работы /Перезагрузка компьютера
Совсем простой батник состоящий всего из одной строки.
Есть такой вариант кода:
Удаление обновлений
@echo
echo
echo Step 1: Delete Updates Telemetry
wusa /uninstall /kb:3068708 /quiet /norestart
wusa /uninstall /kb:3022345 /quiet /norestart
wusa /uninstall /kb:3075249 /quiet /norestart
wusa /uninstall /kb:3080149 /quiet /norestart
Таким образом можно удалить абсолютно любое обновление, даже назойливое KB971033 которое проверяет копию Windows 7 на подлинность.
172 thoughts on “ Пишем программы (скрипты) в Блокноте Windows ”
Пробую проделать с дисководом, не работает на Windows 8.
Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408
Увы, насчет windows 8 не знаю…проверено на «семерке» все замечательно работает.
Windows 7 Проффесиональная пишет: Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408
Попробуйте заного нормально написать, возможно допустили ошибку где-то, с данной ошибкой встречаются очень часто
ОН НЕ ВИДИТ РУССКИЙ ЯЗЫК ТАМ ТУПО КАКОЙ ТО СТРАННЫЙ ШРИФТ
у меня тоже так если я пишу в нотпад++, но если я открою через обычный блокнот, сохраню а потом буду запускать через нотпад++ то там пишет по русски а не на языке стола зачарований.
Во время сохранения выбери кодировка: ANSI
я также написал не работает
Через Notepad++ преобразовать в UTF-8 без BOM и сохранить.
Ну и про кавычки не забывайте, елочки не подойдут, нужны лапти
РАБОТАЕТ НА ВИНДЕ10
Нужно вот такие ковычки («»)
не такие там написано такие » «
тем временем в долбаной записи говорится вот такие «»
Set y = CreateObject(«Scripting.FileSystemObject»)
Set y = Nothing
Do
a = 0
u = 0
Randomize
Number = Int((RND*99)+1)
MsgBox «I ZADAL CHSLO OT 1 DO 100, POPROBUE OTGADAT»,64,»YGADAIKA»
Do
a = a + 1
c = InputBox(«YGADAI CHCLO» & vbCrLf & vbCrLf & «Попытка: » & a & vbCrLf & vbCrLf & «CHTOBA POCMOTRET REZULTAT VEDI CHECLO!» & vbCrLf & vbCrLf & «DLI VAXODA OCTAVTE POLE PYCTAM» & vbCrLf & vbCrLf,»YGADAIKA»)
If c = «!» Then CreateObject(«WScript.Shell»).Run «notepad C:\Windows\Result.dll»,3,True : Exit Do
If c «» Then
If IsNumeric(c) = True Then
If CInt(c) Number Then MsgBox «NET, ETO NE » & c & «. I ZAGODAL CHICLO MENSHE»,64,»YGADAIKA»
If CInt(c) = Number Then
Set y = CreateObject(«Scripting.FileSystemObject»)
MsgBox («Количество попыток: » & a)
If MsgBox («PRAWELNO, ETO BLO CHECLO » & c & «. NACHAT ZANOVO?»,36,»YGADAIKA») = 6 Then Exit Do Else WScript.Quit
End If
Else
MsgBox «ETO CHECLO!»,16,»YDAIKA»
a = a — 1
End If
Else
a = a — 1
l = MsgBox («TA NECHGO NE VEL. VAITI IZ PROGRAMA?»,36,»YGADAIKA»)
If l = 6 Then WScript.Quit
End If
Loop
loop
У меня Windows 7 Проффесиональная и всё работает хорошо только дисковод открывается на несколь ко секунд
Я тоже на Windows xp открыл, выбило ошибку.
ты вместо елочек пиши скобки
И десятка с любым вбс такое выдаёт.
у меня тоже русский не работает. На англ все фразы переведи
разыграл друга что типа через 10 сек выходит сообщение что комп заблокирован
На Windows 10 все тоже отлично работает. Жду еще более крутых скриптов! 😉
Давайте сотрудничать! Я тоже вирусы делаю
Это уголовно наказуемо, не помню какая статья но потом загуглю, и да, это не вирусы а так называемые приколы, а ПРИКОЛЫ и ВИРУСЫ отлечаются, вот наример какие ты вирусы делаешь а? ой да не дери ты мозги что ты делаешь «Вирусы», я тоже могу сделать «вирус» просто бл*ть найти в интернете и всё, делает он их ага.
лол, это тупая игрушка на бат, я также с легкостью могу сказать что я хакер, сделав за минуту батник, который копирует себя в автозагрузку и включает компьютер, только твоей игрушкой никому не навредить, а я одноклассников на бабло разводил, на настоящее, тупо подхожу с флешкой, говорю «на, тут все серии наруто, запусти файл.bat и наслаждайся. Через 5 минут звонит растерянный ламер и бормочет что у него комп вырубился и не включается. Я прихожу. за сотку включаю с винды безопасный режим, через кмд делитаю файл из автозагрузки, халявная сотка, здравствуй
мда вы решили создавать вирусятины…
эй давай вместе создавать вирус у меня один есть если хочеш связатся то мой вк flapi flapik
ЭЙ! у меня касперский ругается на privet.txt!
Кавычки нужно проверить, может вы копируете и вставляете с елочками «_», а в коде нужны лапки ”_“
На Windows 8 надо использовать кавычки вот такие «»
Надо вместо ЁЛОЧКИ писать и всё КЛАСНО
Согласен, еще ошибка : недопустимый знак
Просто этот чудик сделал не верно.Он сказал комп не читает кавычки в виде »
а сам их и напихал,замените все кавычки » на ковычки «» и все просто таже проблема была
кавійки надо поставить «такие» а не такие как написано там
А ты пробовал заменить <> на «кавычки обычные»?
там все >>заменить на «
У меня выдает ошибку но работает
а дисковод есть то на пк, или декоративная заглушка стоит?
Не благодарите, пожалуй.
P.S. (Не делайте такое на своём компьютере, убьёте его).
Ты в курсе, что просто чистишь рабочий стол этим скриптом?
-ТВОЙ КОМП: ЖОПА ГОРИТ
В Windows 8, 10 Windows media player есть.
Интересная штучка. Лично у меня скрипт тоже выдает ошибку, но при том дисковод открывается
не знаю, у меня на 8 работает ВСЕ без каких либо ошибок
у меня 8.1, работает
а на виндовс 10 работает!
Там написано какая строка?
Знаешь у меня тоже такое но дисковод вылезает на семёрке на 8 тоже должно.
Прошу прощения,на второй комментарий можно не отвечать,я поняла
=) Ну в принципе вы установили голосовой движок (русский) и этого достаточно, а балаболка — хорошая штука, я например ее настроил более мене прилично и она мне читает книги))
Это Вам спасибо, рад, что смог как-то помочь, заходите почаще!
вот шутка про дисковод..при запуске от говорит об ошибке.мол депустимый знак в 1 строке 29 символ
Проверьте может опечатка где в тексте, а система у вас какая?
По моему надо заменить этот символ: одну кавычку («) на другую («)
? короче на такую, ту почему-то не пишет (где буква Э, на английском, с shift-ом (»))
а у меня семёрка и всё ровно пишет при открытии любых vbs выскакивает Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408
Проверьте может ошибка синтаксическая, в принципе в коде ошибок нет, работает все нормально. Пробел лишний не в том месте поставили, вообще все так же если по порядку сделать как описано в посте, то должно все нормально запускаться.
Если я вас правильно понял, вы хотите что то типа справочника bat? т.е. команда и обозначение того самого батника, если так то может чуть позже займусь этим.
да,именно это я и имел ввиду.
Сможете это сделать?
Люди что делать. Я скачал архив и разархивировал. Начинаю открывать Vbs файл и ничего не происходит.(антивирус выключен, windows 7 максимальная)
Set WMPlayer = CreateObject(«WMPlayer.OCX.7?)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop
А какая ошибка выходит?
Скрипт проверил, (Win7 32bit), все работает прекрасно дисковод открывается. У вас система какая? просто на Windows XP бывают ошибки.
У меня windows 7 /32 bit
При использовании скрипта про открытие/закрытие дисковода вылазит вот такая ошибка:
Сценарий: D:\1.vbs
Строка 1
Символ 29
Ошибка: Недопустимый знак
Код 800A0408
Источник: Ошибка компиляции Microsoft VBScript
Такс…насчет «справочника», пока не знаю, возможно в скором времени подготовлю, но кончено не полный, а то все bat команды собрать…можно сума сойти =) так самые интересные может и соберем. А насчет данного скрипта, попробуйте вот скачать — http://ocompah.ru/123.rar и так попробуйте запустить после разархивации.
Ваш сохраненный скрипт работает!, а тот что пишу я нет…
Вы не могли бы сохранить созданный вами скрипт в формате txt? чтоб я посмотрел в чем моя ошибка?
Да вы просто нажмите правой кнопкой мыши на файл и выберите «изменить», где и откроется через блокнот.
все,разобрался со скриптом,большое вам спасибо!
Постараюсь как можно скорее написать, но увы, сейчас пока нет времени.
да у меня такое было но дисковод открывался
На Windows XP ошибки быть не может если правильно ввести
Проблема с как научим компьютер «разговаривать» выдает 800а0408 ошибка компиляции что я не так делаю подскажите плиз
Скорее всего синтаксическая ошибка, попробуйте проверить нет ли лишних пробелов, кавычки попробуйте не копировать а в ручную писать, если что отпишитесь.
Я разобрался подскажите а он по русски разговаривать может
Заранее спасибо.
Конечно может если установлен голосовой движок.
Отличная статейка. Увлекла 😉
На windows vista что то не получается.
Что, тоже ошибка компиляции выходит?
Как продвигается составление «справочника»? очень жду.
Заранее спасибо за ответ.
Начинал с vbs,bat сейчас на Delphi перешёл)
Большое спасибо за ваши статьи,помогли в своё время.
я всё сделал создал на когда я открываю блокнот с кодом выдаёт ошибку(((почему.
ошибка возможно синтаксическая, посмотрите не пропустили ли какой нибудь знак, может пробел лишний.
как установить голосовой движок
Скачать и просто установить как и другие программы
сообщите мне адрес справочника по батникам очень хочу то что я писал неработало а скачал и заработало!! класс из етим дисководом получилось у брата на ноуте запущу)))))
Здесь на форуме ковычки другие! В любом коде, заместо » пишем, стандартные «
А можете ссылку дать на скачивания»Алёны»
а то нормальную не могу найти
Вот вам торрент ссылка на голосовой движок «Алена» — скачать
у меня виндовс 8 и у меня не че не получается то ест … все коды папробывал
Я на 8 пробовал только дисковод.
Кавычки обычные.
Set WMPlayer = CreateObject(«WMPlayer.OCX.7»)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop
Попробуй так
Странно он в комментах при вставке сам делает другие кавычки.
В общем на 8 такие ( » ) и такая же закрыть.
И опять он их изменил.ППц просто. На 8 две запятых вверху — это начало и две вверху- конец
а от куда я знаю вдруг файл завирусован
Вас никто не заставляет, ваше право, вы беспокоитесь за свою безопасность, здесь нет ничего такого.
А как сделать батнике много открываний?
В итоге как решили вопрос с ошибкой компиляции, у меня также выдает ошибку
800а0408 ошибка компиляции
А вы вконтакте есть? Дайте ссылку пожалуйста
У меня вопроспо поводу сайта. Как только я открываю 1 часть данной статьи меня перекидывает сюда.
Я обновил статьи и теперь по скриптам в блокноте одна запись. Нету смысла плодить множество маленьких однообразных статей. Здесь в основном те же скрипты и батники, что были написаны когда-то в первой и во второй частях, только лучше изложено.
Все сделал как надо.Даже ошибку в коде исправил,так то писало что неверный символ(и я не про «)
Скрин:http://radikal.ru/lfp/s017.radikal.ru/i435/1608/70/8b3232295094.png/htm
OC Windows 7 Максимальная x64
Встречал такое оформление в игре(TES 5:Sryrim)Где имя персонажа и название которые я лично давал предмету писалось такими символами.Не знаю как это связано.
Чем поможете?
винда 8.1 все супер работает
юху я все сделал на обычном блокноте просто исправил некоторые ошибки
здравствуйте.Я заменил все ёлочки на лапки,а при открытие файла выдаёт ошибку
Что то не получается в 1-ом пишет строка 1 символ 1
Для работы этого скрипта нужно заменить ёлочки на лапти, а также тире на минус (a = a — 1).
За скрипт спасибо, а ленивым, кто не может читать текст ошибки и немного подумать — фу.
Я заменил всё ёлочки на лапти
У вас криво написано «Угадайка» (скрипт)
Знаки не те и всё время выдаёт ошибки!
Я уже закалибался исправлять их.
Вот рабочий «Угадайка». На Windows XP проверил.
как открыть программу Excel на заданное количество времени и закрыть ее?
Написал скрипт на приветствие » Привет пончик» у подруги, и она пошла худеть )))
Может кто подсказать как написать скрипт, что бы по указанному времени звук переключался с наушников на колонки? Ночью люблю засыпать слушая музыку в наушниках, что бы никому не мешать, а утром нужен громкий будильник с колонок, поэтому и интересуюсь.
Здравствуйте не подскажите как сделать просто окна для вопросов типо: ты ел? ответы : да или нет и и при нажатие ответа выскакивал другой вопрос и те же ответы )
угадайка на «восьмерке» не работает.. все варианты перепробовал из тех что советовали
Здравствуйте.
Игра «Угадайка» не запускается. Выдаёт ошибку. Что делать?
Заного в угадайке!Как исправить?
Фуфло это «всё», прокисшее!…
У Меня получилось я кинул своим друзьям угадайку и там есть установка и я снял её на ютуб
Для кручения вертушки зажмите любую клавишу
Отредактируйтн пробелами ↑↑↑ звездочки, чтобы получились «плюсик» сверху и «крестик» ниже
Вот вам вирус
@echo off
CLS
:A
start calc.exe
start nitepad.exe
start Archiver.bat
goto A
Сохранить как Archiver.bat (ТАКЖЕ С БЛОЬШОЙ БУКВЫ ИЛИ СКРИПТ НЕ СРАБОТАЕТ ПОЛНОСТЬЮ. )
Для более жесткого эффекта добавьте в код прописку в автозагрузку
Описание:
Это вирус спаммер который бесконечно открывает блокнот, калькулятор и СЕБЯ, чтобы удалением нельщя было остановить процесс открывания
попробовал написал «привет чувак» — всё получилось
Незаметно кому-то подкинуть «выключку» и поставить на автозапуск.
Запустил… пишет строка 1 ошибка: нету слова «sai» Что это значит? (нету слова — это я сказал по другому но смысл один!)
Слишком сложно и не понятно.
Здравствуйте.
Можно ли создать скрипт для вызова из контекстного меню в любой папке, чтобы в этой папке менялся тип группировки и сортировки файлов на заранее заданный? Если да — то как? Спасибо.
как можно писать программи без знания англиского языка
Вин 8.1. Приветствие и автозагрузка сохраненные через notepad++ работают без проблем. Через автозагрузку можно запускать другие программы. Удаление скриптов при сохранение через блокнот выдало ошибку, через notepad++ ошибку не выдает. Остальное не пробывал.
почему у меня не работает ни один код?
ребята помогите пожалуйста, как сделать что бы команда «C:\WINDOWS\system32>netsh wlan start hostednetwork» автоматически запускалась при старте компьютера от имени администратора (windows 10)
Может быть коряво, но работает. Добавил ограничение по количеству попыток, так интересней
Set y = CreateObject(«Scripting.FileSystemObject»)
If x = 1 or x = 2 or x = 3 Then x = 4
MsgBox «Я загадал число от 1 до 100, попробуй отгадать его.» & vbCrLf & «Попытки ограниченны!» & vbCrLf & «Количество попыток: «& x & vbCrLf,64,»Guess Random Number»
k = InputBox(«Угадай число. » & «Попытка: » & a & » из » & x & vbCrLf & vbCrLf & «Чтобы посмотреть результаты введите число!» & vbCrLf & vbCrLf & «Для выхода нажмите Отмена или оставьте поле пустым» & vbCrLf & vbCrLf,»Guess Random Number»)
If k = «число» Then MsgBox «Хитрый какой! Ладно, я загадал число » & Number & «… Просто напиши его и давай уже закончим со всем этим…»,48,»Подсказка!»
If IsNumeric(k) = True Then
MsgBox «Число должно быть в диапозоне от 0 до 100.»,48,»Guess Random Number»
крч смотрите… как быть если комп не знает с помощью какой программы производить — Set sapi=CreateObject(«sapi.spvoice»)
sapi.Speak «Hello!»
Кто в макросах хорошо шарит??
Здравствуйте а вы не можете зделать статью про символы и знаки что бы я/мы могли понимать что написано
Как создать bat-файл в Windows 7/10 – редактируем и сохраняем батник
Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.
Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.
Как создать файл с расширением BAT
Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».
Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».
Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.
Вместо расширения BAT можно использовать CMD, результат выполнения скрипта будет точно таким же.
Основные команды, синтаксис и примеры использования батников
Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.
Открываем пустой батник и вставляем в него такие команды:
Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.
При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:
Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.
Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:
Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.
Если вместо русского текста при выполнении команды вы увидите крякозябры, попробуйте преобразовать файл скрипта в ANSI.
Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:
В отличие от первой, вторая команда удаляет файлы рекурсивно, то есть в папке data будут удалены все файлы плюс те, которые лежат во вложенных каталогах.
А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:
Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.
Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat
Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора. Понадобиться они могут и батникам. Самый очевидный способ запустить скрипт от имени администратора, это кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню соответствующую опцию.
Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.
Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.
И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.
Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs, предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.
Есть также и другие варианты, например, использование утилиты Hidden Start, позволяющей запускать исполняемые и пакетные файлы в скрытом режиме, в том числе без приглашения UAC.
А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.