Доброго дня!
На меня тут недавно "наехали" (в хорошем смысле 😊): "Дескать... говоришь вот создать BAT-файл*, а как это сделать-то? Учишь непонятно чему... лишь плохому...".
* Для справки.
BAT-файл — текстовый файл со списком команд. При его запуске (открытии) — интерпретатор ОС выполняет их одну за одной. Это очень удобно для выполнения повторяющихся задач (например, если вам нужно запускать каждый раз игру с высоким приоритетом, или чистить определенную папку, и др.).
*
Собственно, в рамках сегодняшней статьи решил исправиться — кратко показать, как их создавать, и дать несколько примеров для решения самых популярных рутинных задач (довольно часто для этого BAT'ники и используют).
Думаю, что многие пользователи смогут слегка до-корректировать мои примеры и создадут для себя вполне рабочие BAT-файлы. 😉
Итак...
*
Содержание статьи📎
- 1 Создание BAT файлов: на примерах
- 1.1 Основы! С чего начать (Вариант 1: проверка пинга)
- 1.2 Вариант 2: запуск игры с высоким приоритетом + откл. авто-поиска Wi-Fi сетей
- 1.3 Вариант 3: создание резервной копий файлов и точки восстановления в Windows
- 1.4 Вариант 4: очистка временных папок
- 1.5 📌 Вариант 5: форматирование диска/флешки (с ручным выбором буквы, имени и файловой системы)
- 1.6 Как запускать BAT-файл от имени администратора (и по расписанию)
- 1.7 Если при выполнении BAT-файла появятся крякозабры вместо русского текста 👌
→ Задать вопрос | дополнить
Создание BAT файлов: на примерах
Основы! С чего начать (Вариант 1: проверка пинга)
Для начала покажу, как создать простейший BAT-файл для проверки пинга (для общего понимания процесса...).
ШАГ 1
Первым делом необходимо создать самый обычный текстовый файл (такой же, как вы создаете в блокноте). Достаточно кликнуть правой кнопкой мыши по любому свободному месту на рабочем столе и выбрать в меню "Текстовый файл" (Text Document). 👇
ШАГ 2
Название файла у этого текстового документа может быть любым (но лучше использовать англ. символы).
Далее следует открыть этот файл и вписать в него нужные команды. В своем примере я впишу только одну (если вы делаете это впервые — рекомендую повторить ее вместе со мной):
ping ya.ru -t
Разумеется, файл нужно сохранить. Кстати, вместо ya.ru можно указать google.ru или любой другой адрес (обычно, многие указывают свой игровой сервер, и запускают этот BAT'ник, когда в игре наблюдаются лаги).
ШАГ 3
Затем обратите внимание на расширение файла — у текстового файла оно ".TXT". Кстати, если у вас не отображаются расширения — можете 📌 прочитать эту заметку или просто введите в командной строке две вот эти команды (последовательно):
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 00000000 /f
taskkill /F /IM explorer.exe & start explorer
*
Нам нужно переименовать файл так, чтобы вместо ".TXT" — было новое расширение ".BAT"!
ШАГ 4
Теперь достаточно кликнуть по "нашему" файлу правой кнопкой мыши и запустить его от имени администратора — автоматически появится окно командной строки с проверкой пинга. Удобно? Вполне! 👌
ШАГ 5
Чтобы отредактировать BAT-файл (и каждый раз не переименовывать его туда-сюда) — рекомендую вам установить блокнот Notepad++ (уже ранее добавлял его в подборку).
После установки Notepad++ — достаточно кликнуть ПКМ по BAT-файлу — и в появившемся меню выбрать опцию редактирования...
*
Вариант 2: запуск игры с высоким приоритетом + откл. авто-поиска Wi-Fi сетей
Этот скрипт рекомендуется попробовать пользователям ноутбуков, кто играет в сетевые игры.
*
Этот BAT-файл я создал на одном своем рабочем ноутбуке (он уже довольно "старый", и нередко притормаживал при запуске игр). Однако, благодаря нескольким строкам кода — удается вполне комфортно играть. 👌
Что за строки нужно добавить в BAT (выделены коричневым):
cmd.exe /c start /high /D "C:\Games\Counter-Strike 1.6\" hl.exe -game cstrike -appid 10 -nojoy -noipx -noforcemparms -noforcemaccel
netsh wlan set autoconfig enabled=no interface="Wi-Fi"
pause
netsh wlan set autoconfig enabled=yes interface="Wi-Fi"
pause
*
Что он делает:
- запускает игру CS с высоким приоритетом (это позволяет снизить кол-во притормаживаний в играх). Разумеется, вместо строки "C:\Games\Counter-Strike 1.6\" hl.exe — вы можете указать свою игру и ее расположение;
- отключает авто-поиск Wi-Fi сетей (это снижаем пинг и увел. скорость сети // правда не дает подключаться к другим Wi-Fi сетям). Кстати, вместо "Wi-Fi" — нужно указать название своего адаптера (посмотрите так: нажмите Win+R, и используйте команду ncpa.cpl);
- далее идет пауза - скрипт будет ждать нажатия какой-нибудь клавиши (примечание: т.к. у нас будет запущена игра — это окно скроется из вида, и оно не будет нам мешать);
- когда через часик-другой игра будет закрыта, — вы увидите окно командной строки и нажмете какую-нибудь клавишу — будет снова включен авто-поиск Wi-Fi сетей. Удобно? 😉
*
Вариант 3: создание резервной копий файлов и точки восстановления в Windows
Приведу наиболее простую и довольно надежную команду для создания резервных копий файлов и папок:
xcopy C:\Games D:\backup /f /i /y /s
*
Она копирует один каталог в другой (просто, без вопросов и расспросов). Если вам нужно скопировать 2 или 3 (или более) каталогов — просто создайте несколько подобных строк.
Расшифровка:
- C:\Games — тот каталог, который будем копировать (все подкаталоги и файлы из них тоже будут скопированы);
- D:\backup — тот каталог, куда будет всё скопировано;
- /f — выводит имена файлов (чтобы вы видели, что происходит);
- /i — создает новый каталог, если на диске "D:" нет каталога "backup" (см. строку выше);
- /y — перезаписывает старые файлы новыми;
- /s — копирует каталоги и подкаталоги, если в них есть какие-то файлы.
*
Для создания точки восстановления можно использовать следующий код:
wmic.exe /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "MyRestorePoint", 100, 7
pause
После запуска подобного BAT-файла — точка восстановления будет создана в авто-режиме! Это очень удобно делать перед установкой нового софта, железа и пр. (чтобы проверить есть ли точка — нажмите Win+R, и используйте команду: rstrui). 👇
Если точки нет (как в моем примере ниже) — прочитайте это!
*
Вариант 4: очистка временных папок
Здесь есть несколько вариантов "подхода". Я приведу один из самых простейших, см. 4 строки ниже. 😉
del /q /f /s %WINDIR%\Temp\*.*
del /q /f /s %SYSTEMDRIVE%\Temp\*.*
del /q /f /s %Tmp%\*.*
del /q /f /s %Temp%\*.*
📌 Что это означает:
- BAT-файл с этими строками чистит временные папки в Windows (как правило, в них скапливается один "мусор", которые занимает лишь место на диске);
- %WINDIR%\Temp\ — это папка "C:\Windows\Temp";
- %SYSTEMDRIVE% — это системный диск "C:\";
- *.* — маска для удаления всех файлов;
- /q /f /s — удаление всех каталогов и подкаталогов (без вопросов).
*
📌 Что можно еще добавить в наш скрипт:
- del /q /f /s %WINDIR%\Prefetch\*.* — эта строка очистит папку Prefetch (в ней сохраняется кэш от различного софта. При удалении той или иной программы — кэш в папке остается, и со временем — ее размер может разрастись);
- del /q /f /s %SYSTEMDRIVE%\*.log — удаление всех Log-файлов с системного диска (это файлы, в которых содержится история запуска программы, например. Во многих случаях они бесполезны). Большинство программ, кстати, ведут логи, со временем они разрастаются и могут отнять сотни МБ на диске;
- При помощи предыдущей команды можно удалить и другие файлы с системного диска (например, с расширением .tmp или .bak // достаточно поменять лишь концовку команды) — однако, будьте аккуратны, легко можно что-нибудь запороть!
*
📌 Вариант 5: форматирование диска/флешки (с ручным выбором буквы, имени и файловой системы)
Этот мини-скриптик может быть весьма полезный (например, если у вас "подвисает" проводник при обращении к флешки // или не запускается управление дисками).
*
Собственно, здесь все делается аналогично. Чтобы не удлинять процесс — вот вам сразу же сам скриптик (ссылка на RAR-архив с BAT-файлом), который "набросал" за 5 мин. (и еще 10 потратил на проверку 😉). Его текст (выделен коричневым):
@echo off
wmic logicaldisk get name, VolumeName, Size, FileSystem, NumberOfBlocks, description
set /p adisk="Введите букву диска/флешки для форматирования: "
set /p named="Введите имя для диска/флешки (любое, например, my_disk): "
set /p number="Нажмите l — для формат. в NTFS, 2 — в FAT32, 3 — для в ExFAT. Ваше число: "if "%number%" == "1" (
format %adisk%: /FS:NTFS /Q /V:%named%
pause
exit /b
)if "%number%" == "2" (
format %adisk%: /FS:FAT32 /Q /V:%named%
pause
exit /b
)if "%number%" == "3" (
format %adisk%: /FS:ExFAT /Q /V:%named%
pause
exit /b
)
*
Он довольно простой, но будьте с ним аккуратны! Если укажите не ту букву накопителя — можно легко отформатировать не тот диск...
Как он работает (запускать под именем администратора):
- сначала он показывает информацию по всем подключенным дискам (и их буквы);
- далее запрашивает букву диска/флешки, которую нужно отформатировать (в своем примере я ввел G и нажал Enter);
- затем нужно ввести название диска — может быть любым (главное, чтобы название было коротким и лучше использовать только латиницу!). Я использовал my_flash;
- после выбрать файловую систему (их тут три), и нажать Enter;
- если все введено корректно — диск/флешка будет отформатирована! 👌
*
Как запускать BAT-файл от имени администратора (и по расписанию)
Способ 1
Самый простой вариант — нажать ПКМ по BAT-файлу и в контекстном меню выбрать "Запуск от имени администратора". См. скрин ниже. 👇
Способ 2
Можно нажать ПКМ по BAT-файлу и создать для него ярлык на рабочем столе. См. скрин ниже. 👇
Далее в свойства ярлыка поставить галочку, что задача должна выполняться от имени администратора. Таким образом при каждом двойном клике по этому ярлыку — BAT'ник будет запускаться от админа. 👌
Способ 3
В планировщике заданий Windows (чтобы его открыть нажмите Win+R, и используйте команду control schedtasks) можно настроить запуск BAT-файла в нужное время и с нужными правами (т.е. автоматически). Это может быть весьма удобно, и серьезно упростить работу со множеством задач (очистка Windows от мусора, создание бэкапов и пр.) — точно никогда не забудете!
Более подробно о том, как создать задачу в планировщике заданий — я 📌 рассказывал в этой заметке.
*
Если при выполнении BAT-файла появятся крякозабры вместо русского текста 👌
Чаще всего это бывает с теми BAT, в которых есть русские символы и выставлена "неправильная" кодировка (например, они часто встречаются в пути к папке: "C:\Games\Лучшие игры"). Кстати, в этом случае BAT-файл работать не будет: после попытки выполнения операции с "крякозабрами" — появится ошибка и окно CMD будет закрыто...
*
Что можно сделать:
- первое: попробуйте в начало BAT-файла добавить код @chcp 1251 (и сохраните файл!);
- второе: установите блокнот Notepad++ и задействуйте OEM-866 кодировку в меню: "Кодировки/Кодировки/Кириллица/OEM-866" (предварительно, для бэкапа, скопируйте весь текст текущего документа в другой файл).
*
👉 Доп. в помощь!
Вместо текста иероглифы, квадратики и крякозабры (в браузере, Word, тексте, окне Windows).
*
Дополнения по теме - приветствуются!
Удачи!
👋
Другие записи:
Начиная, по-моему, с семерки винда использует файлы *.cmd, а батники только олдфаги все ещё делают
Удивил... Смастерил батники для пинга инфраструктуры (не лежит ли некий сервер, не лежит ли некий свитч) и для чистки очереди документов.
Как очистить папку по пути:
C:\Users\Администратор\AppData\Local\Temp
_________________________________________
Часто папка %WINDIR%\Temp\ девственно чиста,
а из Local\Temp килограммы мусора выгребаю.
Например, так: del /q /f /s C:\Users\alex\AppData\Local\Temp\*.*
Автор, а попробуй батник пинговки так и обозвать ping.bat, тебя ждет откровение... И нафига ставить сторонние блокноты, если можно тупо кликнуть ПКМ на батнике и выбрать "изменить". Такое ощущение, что слегка продвинутый юзверь надергал материал с инета и запилил, не вникая статью
Доброго дня.
Мой предложенный блокнот позволяет легко решить вопрос с кодировкой (+ подсветка кода), ваш вариант может это сделать? Если не понимаете о чем речь, попробуйте использовать русские символы в bat-файле...