Автоматизируем рутину в Windows с помощью скриптов.
Иллюстрация: Оля Ежак для Skillbox Media

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

CTO Flocktory, программный директор профессии «DevOps-инженер» в Skillbox, директор программного комитета DevOpsConf.
BAT-файлы — это скрипты с набором команд, которые понимает командная строка Windows. Их можно использовать для автоматизации задач, которые часто повторяются или занимают у пользователя много времени. Такие скрипты хранятся в файлах с расширением .bat.
Для создания BAT-файла понадобится любой текстовый редактор, например стандартный «Блокнот». Давайте откроем его и напишем скрипт, который выведет в окне командной строки сообщение Hello, World!:
@echo off
echo Hello, World!
pause
Теперь нужно сохранить документ в формате .bat. Для этого выберем пункт Сохранить как в разделе меню Файл.

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

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

Для разработки батников существует множество команд. Рассмотрим те, что встречаются чаще всего.
| Команда | Аргумент команды | Действие |
|---|---|---|
| title | Желаемый заголовок | Устанавливает заголовок окна командной строки на желаемый |
| cd | Путь к каталогу | Переводит пользователя в каталог, указанный в пути к файлу |
| start | Команда или путь к файлу | Запускает указанный файл программы или выполнение команды в новом окне командной строки |
| mkdir или md | Имя папки | Создаёт папку с указанным именем |
| copy | Имена файлов и путь к папке для копирования | Копирует файлы в указанный каталог |
| xcopy | Имена файлов и путь к папке для копирования | Копирует каталоги и файлы, сохраняя их структуру |
| move | Путь к файлу и к конечному каталогу | Перемещает файлы из одной папки в другую |
| del | Путь к папке | Удаляет файлы внутри каталога. Не трогает папки |
| rd | Путь к папке | Удаляет папку |
| start | Путь к файлу программы | Запускает файл программы |
| color | Обозначение цвета | Меняет цвет фона и текста командной строки |
| echo | Текст | Выводит текст на экран командной строки |
| chcp | Обозначение кодировки | Указывает кодировку текста. Пригодится для корректного отображения кириллицы |
| pause | — | По окончании выполнения команд оставляет окно командной строки запущенным |
| exit | — | Завершает работу командной строки |
Переменная — виртуальная ячейка с присвоенным именем, в которой хранятся данные. Это может быть текст, числа или выражения. К переменной можно обращаться по имени, чтобы использовать её содержимое или перезаписывать его.
В BAT-файлах переменная объявляется с помощью команды set. После команды надо указать уникальное имя переменной и присвоить ей значение:
@echo off
set example=Hi,user!
echo %example%
pause
Разберём строки скрипта:
- @echo off — эта строка отключает отображение команд. Будут показаны только строки, которые начинаются с echo.
- set example=Hi, user! — создаёт переменную с именем primer и записывает в неё строку Hi, user!.
- echo %example% — выводит содержимое переменной на экран.
- pause — эта команда не даёт окну закрыться сразу после выполнения скрипта, чтобы мы могли оценить результат.
Если запустить этот BAT-файл, то в командной строке появится содержимое переменной example:

Для записи в переменную значения выражения надо использовать флаг /a перед именем:
set /a example=*
Для создания однострочных комментариев используют команду rem или двойное двоеточие (::):
rem текст_комментария
:: текст_комментария
Например, следующий скрипт не выведет на экран строку Следующие команды выводят текст на экран:
@echo off
rem Следующие команды выводят текст на экран
set primer=Hi, user!
echo %primer%
pause
Для больших комментариев на несколько строк можно использовать команду goto:
goto comment
===
текст_комментария
===
:comment
Разберём примеры готовых BAT-файлов для разных задач. Их можно скопировать и использовать уже сейчас.
Допустим, необходимо время от времени создавать копию всех текстовых файлов, лежащих в каталоге Документы. Чтобы не делать это каждый раз вручную, можно создать скрипт и запускать его с рабочего стола.
chcp
При каждом запуске скрипта в папке backup на диске C: будем создавать директорию с текущей датой в названии — так будет проще искать бэкапы. Для этого используем команду md с параметром %DATE%:
md
xcopy
Далее переходим в каталог с резервными копиями с помощью команды cd и вызываем 7-zip с параметром -tzip. Появится архив бэкапа в формате .zip:
cd -tzip a %DATE%.zip %DATE%
Кроме того, текст, выводящийся на экран, можно покрасить с помощью команды color, передав ей код цвета. Эту строчку лучше добавлять в начало батника.
Весь список доступных цветов приведён в таблице:

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

Скриншот: «Командная строка» / Skillbox Media
Полный текст скрипта для резервного копирования файлов:
@echo off
chcp
color
echo Начинается процесс резервного копирования
md
xcopy
cd -tzip a %DATE%.zip %DATE%
echo Процесс завершен
pause
Бывает, что для работы надо запустить одновременно несколько приложений — например, браузер, мессенджер, редактор кода и клиент Git. Этот процесс можно автоматизировать, чтобы все необходимые программы открывались по одному клику.
Исполняемые файлы запускаются командой start. В качестве аргумента ей надо передать путь к файлу на диске:
start
Так, чтобы открыть одновременно браузер Microsoft Edge, текстовый редактор WordPad и приложение «Службы», надо трижды вызвать команду start:
start "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"start "C:\Program Files\Windows NT\Accessories\wordpad.exe"start
Перед аргументом всегда добавляйте двойные кавычки (“”), иначе откроются не программы, а новые экземпляры командной строки.
В Windows есть папка Temp, в которой система собирает временные файлы из браузера и приложений. Если её не очищать, то со временем её размеры могут увеличиться до десятков гигабайт.
Пользователи редко чистят папку с временными файлами. Для этого надо включить отображение скрытых папок, найти директорию на диске и вручную удалять мусор. Проще автоматизировать эту задачу с помощью простого BAT-файла, который будет очищать папку Temp по клику мыши или расписанию.
Сначала вызовем команду rd с параметрами /s и /q — это полностью удалит папку с диска. Затем создадим Temp заново с помощью mkdir:
rd /s /q C:\Users\%USERNAME%\AppData\Local\Temp\
mkdir C:\Users\%USERNAME%\AppData\Local\Temp\
Запускать BAT-файлы можно разными способами. Самый очевидный — двойной щелчок левой кнопкой мыши. Также можно делать это из командной строки или настроить автоматический запуск по расписанию.
- Откройте окно поиска Windows. Он находится рядом с меню «Пуск».
- Введите в строке поиска cmd и запустите инструмент «Командная строка».

- В окне командной строки укажите полный путь до файла .bat и нажмите Enter.

Батники в Windows открываются в окне командной строки, что иногда может мешать в работе. Простой скрипт на языке VBScript позволяет запускать BAT-файлы в фоновом режиме:
- Откройте любой текстовый редактор, например «Блокнот».
- Вставьте в новый документ код скрипта для скрытого запуска:
Set WshShell = CreateObject()
WshShell.Run chr() & & Chr(),
Set WshShell = Nothing
- Сохраните файл, но вместо .bat укажите расширение .vbs.
- Запустите файл, щёлкнув по нему дважды левой кнопкой мыши.
Если у вас есть повторяющиеся задачи, то можно настроить запуск BAT-файлов по расписанию. Для этого понадобится встроенный в Windows «Планировщик заданий».
1. Нажмите сочетание клавиш Win + R, в появившемся окне введите taskschd.msc и нажмите Enter.

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

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

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

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

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

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

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

Научитесь работать с нейросетями — бесплатно!
Большая конференция по ИИ: пять экспертов и 10 нейросетей. Освойте нейросети — работа с ними становится обязательным навыком. Нажмите на баннер, чтобы узнать подробности.
В наших статьях про работу Windows 10 и других версий часто можно встретить упоминание командной строки. Все дело в том, что это удобный системный инструмент, который позволяет настраивать ОС под себя и управлять разными ее частями с помощью простых текстовых команд. Например, мгновенно запускать разные приложения или проводить проверку и сканирование файлов.
Для командной строки существует огромное количество различных кодов, которые мы можете использовать для того, чтобы упростить себе работу с системой и использовать ее функции по максимуму. Ниже разберемся, как открывается командная строка и какие команды можно в нее вводить.
Виды командной строки
Утилита для выполнения команд в Windows разделена на два интерфейса: непосредственно командную строку и оболочку PowerShell. Каждая из них — это консоль, которая напрямую соединяет вас с компонентами ОС или конкретными приложениями на вашем ПК.
Первой появилась командная строка. Ее встроили в систему для того, чтобы оптимизировать стандартные задачи, например, работу с учетными записями на ПК или создание резервных копий по ночам. Вы можете запускать и куда более сложные сценарии. Скрипты командной строки помогают вам облегчить и ускорить работу.

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

Открываем командную строку
Проще всего запустить командную строку через системную утилиту «Выполнить». Ее можно вызвать с помощью комбинации клавиш Windows + R. В открывшемся окне введите cmd и подтвердите выполнение запроса.

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

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

Помните об осторожности при работе с системными файлами и инструментами, и не забывайте делать бэкапы файлов, если вам нужно что-то серьезно изменить.
Программы и утилиты
Эти команды позволят вам моментально запускать программы и открывать разные системные утилиты. С их помощью вы можете быстро перемещаться по разным компонентам системы, без необходимости делать несколько шагов в меню пуск. А еще это позволяет запускать важные утилиты, для доступа к которым нужно лезть вглубь ПК.
- appwiz.cpl — программы и компоненты;
- certmgr.msc — меню управление системными сертификатами
- control — панель управления;
- control printers — меню управления подключенными устройствами и принтерами;
- control userpasswords2 — учетные записи на ПК;
- compmgmt.msc — управление параметрами ПК;
- devmgmt.msc — диспетчер устройств;
- dfrgui — меню оптимизации дискового пространства;
- diskmgmt.msc — управление дисками и пространством;
- dxdiag — средство диагностики DirectX.

- hdwwiz.cpl — диспетчер устройств (другая команда);
- firewall.cpl — брандмауэр Защитника Windows;
- gpedit.msc — редактор локальной групповой политики;
- lusrmgr.msc — локальные пользователи и группы на вашем ПК;
- mblctr — центр мобильности;
- mmc — консоль управления системными оснастками;
- msconfig — системная конфигурация;
- odbcad32 — панель администрирования источника данных ODBC;
- perfmon.msc — системный монитор (можно смотреть изменения в производительности ПК и системы);
- presentationsettings — режим презентации;
- powershell — PowerShell (расширенная версия командной строки);
- powershell_ise — интегрированная среда сценариев для PowerShell;
- regedit — редактор реестра.

- resmon — монитор ресурсов;
- rsop.msc — результирующая политика Windows;
- shrpubw — мастер создания общих ресурсов;
- secpol.msc — локальная политика безопасности;
- services.msc — средство управления службами операционной системы;
- taskmgr — диспетчер задач;
- taskschd.msc — планировщик заданий.
Приложения
Команд для работы с приложениями довольно мало. Они направлены в основном на уже открытые программы, которые выполняют определенные процессы на ПК.
- schtasks – отложенный запуск приложения через планировщик задач;
- shutdown – выключить или перезагрузить ПК;
- tasklist – список выполняемых задач на ПК;
- taskkill – остановить выполнение задачи и закрыть процесс (нужен PID, его вы можете узнать из прошлой команды);
- reg – редактор реестра;
- runas – запустить задачу от имени другого пользователя.

Управление системой
С этим пунктом нужно обращаться осторожнее, ведь команды в нем связаны непосредственно с работой вашей системы. Конечно, если вы просто запустите утилиты с помощью этих запросов, и ничего не будете менять, все будет нормально. Но если вам нужно что-то изменить в системе — будьте крайне осторожны.
- computerdefaults — параметры программ по умолчанию;
- control admintools — папка со средствами администрирования;
- date — управление датой на ПК;
- displayswitch — управление подключенными экранами;
- dpiscaling — параметры дисплея;
- eventvwr.msc — журнал событий;
- fsmgmt.msc — средство работы с общими папками;
- fsquirt — работа с файлами по Bluetooth;
- intl.cpl — региональные настройки;
- joy.cpl — внешние игровые устройства;
- logoff — выход из системы.


- timedate.cpl — дата и время ПК;
- tpm.msc — управление доверенным платформенным модулем TPM на локальном компьютере;
- useraccountcontrolsettings — параметры управления учетными записями пользователей;
- utilman — специальные возможности;
- ver — сведения о текущей версии Windows;
- wf.msc — режим повышенной безопасности брандмауэра;
- winver —общие сведения о Windows;
- WMIwscui.cpl — центр поддержки Windows;
- wscript — параметры сервера сценария;
- wusa — автономный установщик обновлений Windows.
Сеть и интернет
С помощью этих команды вы можете проверить работоспособность вашего интернета и изменить настройки. Также вам будет доступна информация о сетевых устройствах и интерфейсах.
- control netconnections — просмотр и настройка сетевых подключений;
- inetcpl.cpl — свойства интернета;
- NAPncpa.cpl — аналог первой команды;
- telephon.cpl — настройка модемного подключения к интернету;
- ipconfig – информация о сетевых интерфейсах;
- ping – отправляет ICMP-запросы на целевой хост, проверяет его доступность.

- tracert – путь пакетов в сети;
- nslookup – поиск IP-адреса по имени ресурса;
- route – таблицы сетевых маршрутов;
- arp – таблицу с IP-адресами, преобразованными в физические адреса;
- netsh – программа управления сетевыми настройками;
- getmac – MAC-адрес сетевого адаптера;
- tftp – запускает TFTP-клиент в консоли.
Периферия
Команды для управления оборудованием, подключенным к вашему ПК тоже есть. Их немного и они вызывают в основном окна настройки разных устройств, от мышки для принтера и графического планшета.
- main.cpl — панель настройки мыши;
- mmsys.cpl — панель настройки звука;
- printui — пользовательский интерфейс принтера;
- printbrmui — средство переноса принтера, с возможностью экспорта и импорта программ и драйверов;
- printmanagement.msc — управление параметрами печати.

- sysedit — редактирование системных файлов с расширениями .ini и .sys;
- tabcal — средство калибровки дигитайзера;
- tabletpc.cpl — свойства планшета и пера;
- verifier — диспетчер проверки драйверов;
- wfs — факсы и сканирование;
- wmimgmt.msc — элемента управления WMI стандартной консоли.
Файлы и диски
Здесь мы рассмотрим команды для работы с дисками, папками и хранящимися в них файлами. Некоторые из них будут работать только если вы уже вызвали какую-то утилиту или запустили программу. А если вы запутаетесь, то всегда можно воспользоваться командой help, чтобы получить справку по командной строке.
- assoc — связь между расширениями имени и типа пакетного файла;
- attrib — редактирование атрибутов файла или папки;
- bcdboot — создание/восстановление системного раздела;
- cd — смена диска или просмотр выбранного;
- chdir — просмотр папки или переход к другой;
- chkdisk — проверка дисков и внешних накопителей;
- cleanmgr — очистка диска.

- convert — смена файловой системы тома;
- copy — копирование файлов (с выбором конечного каталога);
- del — удаление выделенных файлов;
- dir — просмотр файлов и папок по выбранному пути;
- diskcopm — сравнить содержимое двух дисков;
- dickcopy — скопировать содержимое одного диска на любой другой;
- diskpart — утилита для работы с дисками (открывается в отдельном окне командной строки);
- erase — удаление одного или нескольких файлов;
- fc — сравнение файлов и поиск различий;
- format — форматирование дисков Windows;
- label — изменение меток тома для дисков;
- md — новая папка;
- mdsched — проверка оперативной памяти;
- move — перемещение файлов по указанному пути.

- ntmsmgr.msc — средство работы с внешними накопителями;
- recdisc — создание диска восстановления операционной системы (только оптические накопители);
- recover — восстановление данных;
- rekeywiz — шифрующая файловая система (EFS);
- RSoPrstrui — восстановление системы;
- sdclt — резервное копирование и восстановление;
- sfc /scannow — проверка целостности системных файлов;
- tree — графическое отображение структуры каталогов;
- verify — анализ правильности записи файлов на диск;
- vol — метка и серийный номер тома диска.
Настройка командной строки
Командную строку также можно кастомизировать под себя. Изменить ее цвет, установить приветствие, очистить содержимое, если кода стало слишком много. Словом, всячески управлять ей.
- cls — очистить экран командной строки;
- color — изменить цвет фона (нужен идентификатор цвета);
- exit — закрыть утилиту;
- help — полный список команд;
- prompt — изменяет слева название.

В статье мы собрали самые полезные команды для командной строки. Пользуйтесь ими при необходимости, но не забывайте об осторожности. Все действия с системными файлами и утилитами вы выполняете на свой страх и риск.
Заглавное изображение: wall.alphacoders.com
Навигация по странице
Выполнение скриптов в PowerShell
PowerShell представляет собой новую командную оболочку для операционной системы Windows, созданную Microsoft с целью полного замещения и улучшения cmd. Эта оболочка уже включена в состав операционных систем Windows 7 и выше. Если у вас старая версия операционной системы или вы хотите загрузить более новую версию PowerShell. Windows — операционная система, пользующаяся огромной популярностью среди миллионов пользователей по всему миру. В ее арсенале множество функций и возможностей, однако некоторые из них остаются недостаточно известными обычным пользователям. В данной статье мы расскажем о нескольких полезных сценариях, способных сделать вашу работу с Windows более эффективной и удобной.
Политика исполнения PowerShell-скриптов представляет собой механизм безопасности, управляющий условиями загрузки конфигурационных файлов и запуска сценариев в данной среде. Её основное предназначение — предотвращение выполнения потенциально вредоносных сценариев.
Как сделать и запустить скрипт PowerShell
Создать скрипт PowerShell довольно просто. Вот шаги, которые вы можете выполнить, чтобы создать свой первый скрипт:
1. Откройте редактор PowerShell ISE:
PowerShell ISE (Integrated Scripting Environment) предоставляет удобную среду для написания и отладки скриптов. Вы можете его найти в меню «Пуск» (Start) под разделом «Стандартные» (Standard) или выполнить команду `PowerShell_ise` в командной строке.
2. Напишите свой скрипт:
В окне редактора PowerShell ISE напишите свой скрипт. Ниже приведен пример простого скрипта, который выводит «Hello, World!» в консоль:
Write-Host «Hello, World!»
3. Сохраните скрипт:
- Нажмите `Ctrl + S` или выберите «Файл» (File) -> «Сохранить» (Save).
- Укажите имя файла и добавьте расширение `.ps1` (например, `MyScript.ps1`).
4. Запустите скрипт:
- Выберите весь текст скрипта.
- Нажмите `F5` или выберите «Запустить сценарий» (Run Script) в PowerShell ISE.
Примеры более сложных скриптов:
#Скрипт, создающий новую папку:
$folderPath = «C:\Path\To\NewFolder»
New-Item -ItemType Directory -Path $folderPath
#Скрипт, удаляющий все файлы старше 7 дней в папке:
$folderPath = «C:\Path\To\Folder»
$limitDate = (Get-Date).AddDays(-7)
#Скрипт, проверяющий статус службы:
Write-Host «The status of service $serviceName is: $($serviceStatus.Status)»
Ваши скрипты могут включать более сложные команды, использовать условия, циклы и вызывать функции. Как только вы освоите основы, вы сможете создавать более мощные и гибкие скрипты PowerShell.
Скрипты для Windows — не просто строки кода, а волшебные ключи, открывающие дверь в мир автоматизации. В руках умелого пользователя они становятся инструментом, способным не только сэкономить время, но и превратить рутинные задачи в захватывающее путешествие по потокам байтов и командам.
Как запустить скрипт в PowerShell?
Существует несколько способов запуска скрипта, вот основные из них:
- Запустить оболочку PowerShell и выполнить в ней скрипт, указав путь к файлу и его имя (например, C:\Scripts\test.ps1) или перейдя в каталог скрипта командой cd C:\Scripts и выполнить его с помощью команды .\test.ps1.
- Оболочку можно найти и запустить разными способами. Один из них — через меню «Пуск». Для Windows 7 пройдите по следующему пути: «Все программы» — «Стандартные» — «Windows PowerShell» и запустите оболочку «Windows PowerShell». Для Windows 10 найдите группу по букве «W» и в ней выберите «Windows PowerShell».
- Запустить «Интегрированную среду сценариев Windows PowerShell ISE», которая представляет собой среду разработки, позволяющую редактировать и отлаживать скрипты PowerShell. Откройте программу, выберите «Открыть» или в меню Файл выберите «Открыть» и укажите нужный скрипт, затем нажмите F5 или кнопку «Выполнить скрипт». Поиск Windows PowerShell ISE можно осуществить так же, как и оболочки PowerShell, через меню «Пуск».
- Запустить стандартный командный интерфейс и ввести следующую команду:
PowerShell -file <имя_скрипта> (например: PowerShell -file myscript.ps1)
Если вы ранее не запускали скрипты PowerShell, возможно, вы получите сообщение о том, что файл <имя_скрипта> не может быть загружен, так как выполнение скриптов запрещено для данной системы. В этом случае введите «get-help about_signing» для получения дополнительной информации. Это связано с безопасностью и предотвращением случайного выполнения вредоносного кода, поэтому все скрипты должны быть подписаны цифровой подписью.
Как разрешить выполнение неподписанного скрипта PowerShell?
- В оболочке PowerShell перед запуском скрипта выполните следующую команду для разрешения выполнения неподписанных скриптов в текущем сеансе оболочки:
Set-ExecutionPolicy RemoteSigned -Scope Process
- При запуске из стандартного командного интерфейса используйте параметр -executionpolicy, например:
PowerShell -executionpolicy RemoteSigned -file <имя_скрипта>
Оба способа устанавливают политику только для текущего сеанса, при этом политика безопасности выполнения скриптов PowerShell, установленная в реестре, остается неизменной. Если вы хотите изменить политику безопасности выполнения скриптов «навсегда», используйте следующий способ:
- Разрешить выполнение навсегда: запустите оболочку PowerShell от имени «Администратора» и выполните команду:
Однако рекомендуется избегать этого способа, чтобы не подвергать ваш компьютер возможным угрозам, поскольку это разрешает выполнение всех скриптов всегда.
Примечание: Если скрипт был загружен из интернета, чтобы избежать запроса на подтверждение выполнения, используйте параметр Bypass вместо RemoteSigned — это полное отключение любых запросов и предупреждений.
Как запустить скрипт PowerShell в фоновом режиме?
Для этого используйте параметр -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Чтобы запустить неподписанный скрипт в фоновом режиме, выполните команду:
PowerShell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>
Также при желании вы можете добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Однако будьте внимательны, используя этот способ.
Как запустить скрипт через PowerShell с параметрами?
Запуск осуществляется аналогично запуску обычной программы или bat-файла с параметрами. Например, чтобы запустить скрипт с параметрами из командной строки, используйте следующую команду:
PowerShell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр«
В самом скрипте параметры могут быть получены так:
param ($var1, $var2, $var3)
В интегрированной среде PowerShell ISE скрипт с параметрами можно запустить аналогично, используя область команд.
Как запустить скрипт PowerShell с помощью ярлыка?
Это можно сделать двумя способами:
- Создать файл bat/cmd, в котором прописать команду для запуска скрипта (с параметрами, как описано выше).
- Создать ярлык на PowerShell, который находится в папке c:\Windows\System32\WindowsPowerShell\v<версия>\. В свойствах ярлыка в поле «Объект» добавьте необходимые параметры.
Таким образом, например, чтобы запустить скрипт PowerShell при входе пользователя, просто создайте ярлык, как описано во втором пункте, и поместите его в автозагрузку. Также создание ярлыка с использованием одного из вышеописанных методов позволяет легко запускать скрипт от имени администратора или от имени любого другого пользователя, как обычную программу.
Скриптовый язык PowerShell — мощный инструмент для решения различных задач. Однако следует использовать его с осторожностью, поскольку он может быть использован не только для полезных, но и для вредоносных целей. Будьте внимательны при работе с ним.
Полезные сценарии для Windows
1. Скрипт выключения Windows (или перезагрузки):
Простейшая операция выключения компьютера. Откройте блокнот и введите:
shutdown -s -t 0
Сохраните файл с расширением *.cmd* (например, *shutdown.cmd*). При запуске этого файла компьютер выключится. Замените «-s» на «-r» для перезагрузки. Параметр «-t» устанавливает таймер; в данном случае, он равен 0 секунд, но можно установить, например, на 60 для выключения через 60 секунд.
2. Удаление ненужных приложений:
С помощью следующего скрипта можно удалить предустановленные приложения:
Замените *APPNAME* на название ненужного приложения. Хотя удаление можно выполнить стандартным способом или через программы, этот скрипт делает процесс более удобным.
3. Управление процессами:
Воспользуйтесь PowerShell для борьбы с медленными процессами. Выведите все службы:
Или получите информацию о конкретной службе с кодовым именем *NAME*:
Создайте файл, который закрывает процессы с повышенным потреблением ресурсов:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Замените *ANTIVIRUS* и *BROWSER* на соответствующие названия.
4. Переименование группы файлов:
Решите проблему однотипных файлов с помощью скрипта группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
Укажите путь, расширение и выполните замены в строке.
5. Поиск файлов:
Используйте PowerShell для поиска файлов в директории:
Для более сложного поиска в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
6. Справка:
Пользуйтесь командой *Get-Help* для получения информации:
Для более подробной справки по конкретной команде:
Get-Help —Name *CMDLET*
7. Получение информации о системе:
Используйте PowerShell для получения данных о системе, например, уровне заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
Информация об архитектуре процессора удаленного компьютера:
Проверка прав администратора текущего пользователя:
Эти простые и полезные сценарии помогут вам эффективнее управлять вашей системой Windows.
Командные скрипты Windows
Это общий термин, который включает в себя различные типы скриптов и командных файлов, используемых в операционной системе Windows для автоматизации задач. Включают в себя как скрипты на языке командной строки (например, скрипты CMD), так и на более современных языках, таких как PowerShell. Например, Bat-скрипты (*.bat), PowerShell-скрипты (*.ps1), а также другие сценарии, созданные для автоматизации определенных задач.
Bat-скрипты Windows
Bat-скрипты, или файлы пакетных команд (Batch-файлы), представляют собой текстовые файлы, содержащие команды и инструкции для выполнения в командной строке Windows. Основаны на языке пакетных команд (Batch scripting language). Расширение файла: *.bat* (например, *myscript.bat*).
Пример простого bat-скрипта:
Выполняемые скрипты Windows
Это скрипты, которые могут быть выполнены в среде операционной системы Windows и обычно предназначены для автоматизации различных задач. Включают в себя bat-скрипты (командные файлы), PowerShell-скрипты, а также другие типы скриптов, которые можно выполнять в Windows. Общее отличие между bat-скриптами и PowerShell-скриптами заключается в языке программирования, используемом для написания команд и инструкций. Bat-скрипты используют язык пакетных команд, который является устаревшим и имеет ограниченные возможности по сравнению с PowerShell, который представляет более современный и мощный язык с разнообразными функциональными возможностями для автоматизации задач в Windows.
Какое расширение имеют файлы скриптов PowerShell
PowerShell-скрипты имеют расширение *.ps1*, и для их выполнения часто требуется предварительная настройка политики выполнения скриптов (Execution Policy), чтобы разрешить запуск скрипта через PowerShell в системе.
Скрипты PowerShell для администратора
PowerShell — мощный инструмент для сисадминов Windows, предоставляя широкий набор команд и сценариев для автоматизации и управления системой. Ниже приведены несколько примеров PowerShell-скриптов, которые могут быть полезны администраторам:
1. Создание резервной копии файлов:
$sourcePath = «C:\Path\To\Source»
$destinationPath = «D:\Backup»
$timestamp = Get-Date -Format «yyyyMMddHHmmss»
$backupFolder = «$destinationPath\Backup_$timestamp»
Copy-Item -Path $sourcePath -Destination $backupFolder -Recurse
2. Мониторинг дискового пространства:
$threshold = 80
$diskLetter = $disk.DeviceID
Write-Host «Warning: Disk $diskLetter is running low on free space ($freeSpacePercentage%)»
# Можно добавить уведомление администратора
3. Создание нового пользователя:
$password = ConvertTo-SecureString «SecurePassword123» -AsPlainText -Force
4. Мониторинг событий в журнале событий:
$logName = «System»
$events = Get-WinEvent -LogName $logName -MaxEvents 10
Write-Host «Event ID $($event.Id): $($event.Message)»
5. Обновление всех установленных модулей PowerShell:
Update-Module -Name $_.Name -Force
6. Удаление временных файлов в системной директории:
Remove-Item «$tempPath\*» -Force
7. Создание отчета о состоянии служб:
8. Настройка правил брандмауэра:
New-NetFirewallRule -DisplayName «Allow-SSH» -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
9. Удаление неиспользуемых профилей пользователей:
$inactiveDays = 90
$lastUseDate = $profile.LastUseTime
$difference = (Get-Date) — $lastUseDate
Remove-WmiObject -InputObject $profile -Confirm:$false
Эти примеры предоставляют общее представление о том, как PowerShell может использоваться администраторами для автоматизации различных задач в Windows-среде. Помните, что некоторые команды могут потребовать выполнения от имени администратора.
Для вызова скриптов PowerShell, вы можете использовать команду `Invoke-Expression` или просто указать путь к файлу скрипта. Предположим, у вас есть следующие скрипты: `ClearDisk.ps1`, `InstallPrograms.ps1`, `BackupScript.ps1`, и `UpdateSystem.ps1`.
1. Скрипт очистки диска (ClearDisk.ps1):
# Ваш код для очистки диска
# Пример: удаление временных файлов
Remove-Item -Path «$env:TEMP\*» -Recurse -Force
# Используйте Invoke-Expression
Invoke-Expression -Command «.\ClearDisk.ps1»
# Или просто указывайте путь к файлу скрипта
2. Скрипт автоматической установки программ (InstallPrograms.ps1):
# Ваш код для автоматической установки программ
# Пример: установка программы Chocolatey и установка пакетов
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
choco install packageName -y
# Используйте Invoke-Expression
Invoke-Expression -Command «.\InstallPrograms.ps1»
# Или просто указывайте путь к файлу скрипта
3. Скрипт резервного копирования (BackupScript.ps1):
# Ваш код для создания резервной копии
# Пример: копирование файлов в другую директорию
$sourcePath = «C:\Path\To\Source»
$destinationPath = «D:\Backup»
Copy-Item -Path $sourcePath -Destination $destinationPath -Recurse
# Используйте Invoke-Expression
Invoke-Expression -Command «.\BackupScript.ps1»
# Или просто указывайте путь к файлу скрипта
4. Скрипт автоматического обновления системы (UpdateSystem.ps1):
# Ваш код для автоматического обновления системы
# Пример: обновление всех установленных модулей PowerShell
Update-Module -Name $_.Name -Force
# Используйте Invoke-Expression
Invoke-Expression -Command «.\UpdateSystem.ps1»
# Или просто указывайте путь к файлу скрипта
Убедитесь, что вы находитесь в той же директории, что и ваши скрипты, или укажите полный путь к файлу скрипта.
В этой статье мы коснулись всех аспектов создания, запуска и использования скриптов в Windows. Надеемся, что эти советы и примеры помогут вам освоить этот увлекательный мир автоматизации и сделают вашу работу более эффективной и приятной.
В статье мы расскажем, как создать BAT-файл, а также как заполнить и запустить его.
Что такое BAT-файл
BATCH, или BAT, — это текстовый файл, который содержит список команд для интерпретатора командной строки Windows. Изначально «батники» назывались BATCH-файлами, однако со временем они получили название BAT, так как чаще всего они имеют расширение .bat (иногда встречается .cmd).
При создании и настройке BAT-файла необходимо учитывать некоторые особенности:
Bat-файл будет работать только на операционной системе Windows.
Для работы с файлом потребуется текстовый редактор: подойдет стандартный Блокнот. Однако для крупного списка команд рекомендуем использовать редактор, в который встроена подсветка синтаксиса: например, Notepad++.
Как создать BAT-файл
Базовые инструменты, которые нужны для создания BAT-файла, по умолчанию встроены в любой версии ОС Windows. Мы опишем процедуру создания тестового файла через Блокнот.
Чтобы создать BAT-файл:
В поисковой строке наберите Блокнот и нажмите Открыть:

@echo off echo Hello! How are you? pauseВыберите раздел Файл и кликните Сохранить как:

Откройте папку, в которую нужно сохранить файл. В строке «Тип файла» выберите Все файлы. Укажите название файла вместе с расширением .bat и нажмите Сохранить:

Если файл сохранился с расширением .txt
Если файл сохранился с расширением .txt
Функционал Windows позволяет исправить расширение. Для того чтобы сделать это:
Перейдите в папку, в которой сохранен BAT-файл.
Выберите вкладку Вид и отметьте галочкой пункт Расширения имен файлов:

Правой кнопкой мыши кликните по названию файла и нажмите Переименовать. Измените расширение файла на .bat и нажмите клавишу Enter:

Готово, вы создали BAT-файл.
Какие команды используются в тексте BAT-файла
Для написания батника можно использовать большое количество команд. Чаще всего используются следующие команды:
Путь к файлу или команда
Начать выполнение программы или команды в новом окне
Приостановить выполнение файла
Название каталога или путь к нему
Перейти в указанный каталог
Имена файлов и название каталога, в который нужно их копировать
Скопировать файлы в указанный каталог
Текущий и конечный путь к файлу
Переместить файл из одного каталога в другой
Название файла или папки
Удалить указанный объект
Путь к исполняемому файлу
Запустить пакетный файл из другого файла
Изменить заголовок окна
Цвет фона и текста (цифра или буква)
Изменить цвет фона и текста
Завершить выполнение пакетного файла
Как объявить переменную в BAT-файле
Переменная — это часть физического или виртуального пространства, которая наполнена данными определенного типа. Чтобы задействовать какую-либо переменную в бат-файле, нужно ее объявить. Это можно сделать с помощью команды set:
@echo off
set example=Hello!
echo %example%
pauseВажно: не ставьте пробел после знака равенства — иначе код не будет работать.
Если вы хотите объявить переменную в числовом формате, используйте флаг /a:
@echo off
set /a example=2*2
echo %example%
pauseЕсли флаг /a не добавлен, переменной присваивается полное значение после знака равенства.
Как оставлять комментарии в BAT-файле
Вместо comment_text укажите текст комментария.
Вместо comment_text укажите текст комментария.
- comment_text or_ASCII-art — укажите текст комментария,
- label_name — название метки комментария.
Примеры BAT-файлов
Корректно заполненные «батники» могут облегчить работу с ОС и файловой системой. Ниже мы добавили примеры BAT-файлов, с помощью которых вы сможете выполнить некоторые действия.
Обновить IP-адреса
Однако после выполнения команды на экране отображается длинный вывод: это не всегда удобно. Однако в BAT-файле можно направить вывод этой команды в текстовый файл. Для этого создайте новый файл и добавьте в него строки:
rem Отключаем отображение текущей команды
@echo off
rem Переводим вывод выполнения в файл, вывод в командной строке исчезнет
ipconfig /renew > C:\Users\Username\OneDrive\Документы\filename.txtЕсли вы хотите, чтобы вывод команды не записывался и не выводился на экран, в качестве пути укажите NUL:
rem Отключаем отображение текущей команды
@echo off
rem Переводим вывод выполнения в файл, вывод в командной строке исчезнет
ipconfig > NULТакже вы можете оставить пояснительные сообщения для пользователя и скорректировать кодировку BAT-файла для интерпретатора. Итоговый код будет иметь следующий вид:
@echo off
chcp 1251 > C:\Users\Username\OneDrive\Документы\filename.txt
echo Новые адреса распределяются. Пожалуйста, подождите...
ipconfig /renew > C:\Users\Username\OneDrive\Документы\filename.txt
echo Готово. Ознакомиться с результатами можно в C:\Users\Username\OneDrive\Документы\filename.txt
pause- chcp 1251 — кодировка, которую требует ваш интерпретатор,
- C:\Users\Username\OneDrive\Документы\filename.txt — путь к файлу, в который записывается вывод команды.
Переименовать файлы
Существует несколько способов переименования файлов. Первый — это переименование одного файла с полным указанием названия:
rename old_name.txt new_name.txt- old_name.txt — прежнее имя файла,
- new_name.txt — новое имя файла.
Второй способ — переименование файлов по маске. Предположим, что в каталоге есть файлы с названиями oldname1.txt, oldname2.txt и oldname3.txt. Вам нужно переименовать их на newname1.txt, newname2.txt и newname3.txt. Вы можете это сделать за одну строку с помощью команды:
rename old_name* new_name*Если вы хотите переименовать файлы только с определенным расширением, можно добавить их в состав команды:
rename old_name*.txt new_name*.txtУдалить все ненужные файлы
Существуют программы, при работе с которыми создаются новые файлы (чаще всего текстовые). По мере того, как накапливаются эти файлы в системе, они могут потерять актуальность.
Чтобы очистить дисковое пространство, вы можете удалять эти файлы вручную. Однако если их стало слишком много, рекомендуем использовать BAT-файл.
Создайте новый файл и добавьте в него следующие строки:
@echo off
del /f /s /q C:\Users\Username\OneDrive\Документы\logs\*.txt- /f — флаг, который позволяет удалить все файлы вне зависимости от прав доступа;
- /s — флаг, который позволяет удалить все файлы в выбранной папке и всех ее подпапках;
- /q — флаг, который убирает подтверждение удаления файлов;
- C:\Users\Username\OneDrive\Документы\logs\ — путь к каталогу, в котором нужно удалить файлы;
- *.txt — маска, которая указывает на удаление всех файлов с расширением .txt в выбранном каталоге.
Как запустить BAT-файл через командную строку
Запуск BAT-файла выполняется через командную строку. Это можно сделать разными способами:
- автоматически,
- вручную,
- в скрытом режиме,
- по расписанию.
Ниже мы опишем каждый из этих способов.
Как выполнить автоматический запуск
Кликните по файлу правой кнопкой мыши.
Выберите Запуск от имени администратора:

Готово, вы выполнили автозапуск файла.
Как запустить файл вручную
Нажмите Win + R.
Введите cmd и кликните OK:

Введите полный путь к нужному файлу и нажмите Enter.
Готово, вы запустили файл вручную.
Как выполнить скрытый запуск
Откройте текстовый редактор.
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\Users\Username\OneDrive\Документы\Scripts\test.bat" & Chr(34), 0 Set WshShell = Nothing
Сохраните файл с расширением .vbs.
Запустите файл, созданный на предыдущем шаге.
Готово, вы настроили скрытый запуск.
Как запускать BAT-файл по расписанию
Для запуска бат-файла по расписанию необходимо использовать программу Планировщик заданий. Для этого:
Нажмите Win + R.
Введите taskschd.msc и кликните OK:

Выберите Создать простую задачу:

Укажите имя задачи и нажмите Далее:

Выберите периодичность запуска и кликните Далее:

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

Выберите действие Запустить программу. Затем кликните Далее:

Укажите путь до вашего скрипта (бат-файла) и нажмите Далее:

Проверьте все параметры запуска и кликните Готово:

Готово, вы настроили запуск по расписанию.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊


