![]() ![]() ![]() |
|
1 | |
Полезные BAT/CMD скрипты15.10.2012, 00:56. Показов 630122. Ответов 183
Метки acl, antihidden, cabinet archive, cacls, drive serial number, folder permissions, not responding, regsvr32, sfc /scannow, takeown, полезные bat/cmd скрипты (Все метки)
В этой теме выкладываем скрипты, которые часто используются Вами
или на Ваш взгляд могут иметь большое практическое значение. Также приветствуются скрипты высокой степени сложности, полезные с точки зрения изучения принципа их работы. Правила темы:
Схожая тема: BAT/CMD файлы Смежная тема: Полезные VBS скрипты и программы по работе с ними Ссылка на набор полезных скриптов (предыдущая шапка от bombus) BAT/CMD файлы ******************* Перечень полезных скриптов: ******************* Архивация и резервное копирование Создание CAB-архивов ссылка Безопасность Удаление последствий вируса (фейковые папки на флешке) ALINK Стать владельцем папки/файла, получить полные права (пункт контекстного меню (Reg-файл) ALINK Смена владельца и прав на папку и ее содержимое, в которой запущен батник (Full Access <-> Read Only) ссылка Дата, время Конвертация даты/времени из/в UNIX-формат(в секундах после 1-янв-1970 00:00:00) ссылка Интерфейс Крутящаяся палка (имитация) ссылка Вызов GUI диалогового окна выбора папки ссылка Разноцветный вывод в консоли. ссылка Цветная роза. ссылка Диалоговое меню выбора файла ссылка Компиляция Помощник компиляции исходных кодов С# (.cs) через консольный NET.FrameWork компилятор ссылка Операционная система Восстановление шрифтов после сбоя ссылка Пищалка (сигнал встроенного динамика, подобие Beep) ссылка Регистрация всех библиотек DLL и OCX ссылка Проверка целостности системных файлов утилитой sfc /scannow с выводом лога и автоопределением месторасположения диска ссылка Сеть Подсчёт маски подсети на основании двух крайних значений диапазона. ALINK Пакетное получение информации о IP-адресах и построение HTML-отчёта. ALINK GetIP/GetMAC/Get default gateway ссылка Процессы Завершение процесса (с листингом и выбором через меню) ссылка Многопроцессное создание пустых файлов (бенчмарк для винчестера) ссылка Отслеживание зависшего процесса и его перезапуск с указанным приоритетом ссылка Process Change Monitor (мониторинг и протоколирование изменений в списке запущенных процессов) ссылка Текстовые операции, кодировка Вывод текста без переноса на новую строку ALINK Перекодировка CP OEM-866 <-> WIN-1251 - 1) CMD 2) VBA 3) ASM (exe+src) ссылка Помощь по всем командам вашей версии Windows / DOS ссылка Транслитерация файлов, в именах которых есть кириллица (файловые операции) ссылка Преобразование текстового файла в кодировку Unicode (файловые операции) ссылка Перекодировщик Reversed Hex в символьную строку ссылка Файловые операции, разделы Взаимное копирование содержимого 2 папок друг в друга ALINK Прогресс-бар копирования файлов ссылка Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку. ссылка Создание нуль-копии папки для выкладывания на форуме ссылка Получение серийного номера всех съемных устройств и физических жестких дисков (не разделов). Получение имен разделов физических накопителей (кроме оптических). ссылка Другое Расчёт индекса массы тела и идеального веса ссылка
23
|
15.10.2012, 00:56 | |
Ответы с готовыми решениями:
183
Batch (CMD/BAT) несколько заданий на CMD/BAT CMD/BAT - Bat для запуска приложения при падении нагрузки ЦП другого процесса Как запустить bat файл командой cmd /k передав bat файлу дополнительные аргументы |
![]() ![]() ![]() |
||||||
15.10.2012, 00:57 [ТС] | 2 | |||||
Взаимное копирование содержимого 2 папок друг в друга
Критерий копирования при совпадении имен файлов: последняя дата модификации. Использование: Сохранить в файл Мое_Название_файла.CMD Скопировать файл в папку № 1. Перетянуть папку № 2 на этот сценарий. Примечание: скрипт использует Robocopy.exe из пакета Windows Resource Kit (является родной для Windows 7) Развернуть код ...
3
|
![]() ![]() ![]() |
|||||||||||
15.10.2012, 02:41 [ТС] | 3 | ||||||||||
Удаление последствий вируса (поддельные "фейковые" папки на флешке)
19.11.2012 - Критическое обновление (запускать скрипт "от имени Администратора" теперь безопасно). Автор: Dragokas Использование: Скопировать в корень съемного диска (USB Flash Drive). Запустить. Показания к применению: Ваша флешка побывала на компьютере с вирусом, скрывающим папки, а вместо них - теперь ярлыки. Вы хотите, чтобы на флешке физически нельзя было создать autorun.inf, который дает команду на запуск паразитов. Функционал v.1.5.: 1. Удаление файлов с расширением *.lnk (ярлыки), соответствующих именам папок. 1.1. Удаление других *.lnk с запросом подтверждения от пользователя. 2. Снятие атрибутов "скрытый", "системный" с папок в корне флешки. 3. Удаление файла автозапуска "autorun.inf". 4. Создание папки "autorun.inf" (контр-мера против дальнейшей возможности создавать файл autorun.inf) Папка содержит в свою очередь 3 неудаляемые штатными способами подпапки, создаваемые разными алгоритмами. (папка с 2 точками на конце, папка с именем системного устройства и папка с измененными ACL-правами доступа). 5. Удаление всех файлов с расширением *.exe в корне папки C:\Users\Пользователь\AppData\Roaming (%appdata%) - это безопасно. 6. Завершение процесса Host.exe. Поиск и удаление рекурсивно всех файлов Host.exe (все действия с подтверждением от пользователя). 7. Удаление модифицированных системных папок "recycled" и "System Volume Information" без подтверждения. (удаление папки корзины Windows ("recycler") на оперируемом томе происходит с подтверждением). 8. Удаление дополнительных обычно вирусных файлов (System, Game.cpl) в режиме подтверждения. Тонкости: Учитываются особенности работы с именами, где используются буквы украинского алфавита и др. спецсимволы. Если удаление не происходит с первого раза предпринимается попытка получить права на объект и сменить владельца. Если и это не получается сделать, производится попытка удалить папку/файл в обход ограничений API-функций Windows на имена. Основные изменения в update 1.5. (от 16.11.2012) Исправлены ошибки с кавычками и др. недочеты. Скрипт спрашивает разрешения и ничего лишнего точно не удалит. Более быстрая работа. Добавлена визуализация и %-ый прогрессбар. Обсуждение скрипта ведется здесь (и последняя версия скрипта тоже): AntiHidden - Удаление последствий вируса (поддельные "фейковые" папки на флешке) FAQ
Как удалить созданную программой папку Autorun.inf - Не скажу ![]() Программа работает слишком долго: - Вероятно много папок/файлов или за Вами очень внимательно следит антивирус ![]() Зачем удалять программы в корне папки %appdata% ? - Некоторые вирусы, скрывающие папки, хранят свое тело в папке %appdata% Другие пользовательские или системные программы в корне этой папки никогда не хранятся. Листинг исходного кода v.1.5.1. ua:
В коде версии 1.5. использованы спецсимволы BackSpace, поэтому при прямом копировании кода Ваш батник работать не будет, как задумано. (скачивайте через прикрепленный файл).
Add. Перевод на русский v.1.4.: Листинг (с переводом).
8
|
![]() ![]() ![]() |
||||||
15.10.2012, 02:44 [ТС] | 4 | |||||
Стать владельцем папки/файла, получить полные права (пункт контекстного меню)
Скрипт представляет из себе ключик реестра. Установка: Сохранить код в файл с расширением .REG Запустить Reg-ключ и подтвердить импорт в реестр. Использование: Правый клик по нужному файлу/папке, выбрать "Стать владельцем и задать полный доступ к объекту". Предназначение: Назначает Вас владельцем указанной папки (файла). "Сбрасывает" его/ее ACL-таблицу. Показания к применению: При попытке файловой операции над файлом/папкой появляется сообщение "У Вас недостаточно прав для выполнения данной операции". Бывает, когда копируете данные с другого компьютера. Прим.: данное средство не позволяет переназначить права, если требуемый файл находится вне целевого компьютера (в локальной сети). Ключик Nizaury Reg-Key Листинг:
Автор: Nizaury Смежный скрипт: Смена владельца и прав на папку и ее содержимое, в которой запущен батник
14
|
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
|
||||||||||||||||
15.10.2012, 05:16 | 5 | |||||||||||||||
Подсчёт маски подсети на основании двух крайних значений диапазона.
Синтаксис - netmask.cmd <начало диапазона> <конец диапазона> Вызов из другого скрипта - см. комментарии. Развернуть код ...
UPD. 26.04.13 Изменения: переписан вывод помощи и добавлен ключ для вывода маски в формате CIDR. Использование: netmask <начальный IP диапазона> <конечный IP диапазона> netmask <начальный IP диапазона> <конечный IP диапазона> cidr Примеры:
Развернуть код ...
.
2
|
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
|
|
15.10.2012, 05:16 | 6 |
Пакетное получение информации о IP-адресах и построение HTML-отчёта.
Использование - поместить IP-адреса (по одному на строку) в файл iplist.txt, запустить masswhois.bat и дождаться завершения работы. Результат будет представлен в виде result.html Если IP-адреса нужно выделить из общей массы текста, поместить текст в файл raw_data.txt и запустить get_all_ip.bat, список IP без дублей будет автоматически сгенерирован и передан на обработку masswhois.bat В отчёте представлены: сам IP, его маска и диапазон, страна, имя подсети и адрес. Использованные внешние утилиты - grep, uniqline, whosip, netmask.cmd
2
|
![]() ![]() ![]() |
||||||
21.10.2012, 03:05 [ТС] | 7 | |||||
Вывод текста без переноса на новую строку
Принцип подсмотрел у alexii на сером форуме. Код содержит невидимые символы BackSpace (0x08). Поэтому, чтобы их увидеть, Ваш редактор должен их поддерживать. Будет полезен для создания процентного прогрессбара или указания на текущий обрабатываемый файл, если есть необходимость в экономии места на экране. Это Lite-версия: не учитывает возможность превышения длиной выводимого текста ширины консольного окна. Рабочий вариант качайте с файла. Под спойлером код с комментариями. Он работать не будет, т.к. я заменил все BackSpace (0x08) на символ (0х20) для наглядности. Чтобы поставить такой символ, достаточно нажать Alt + 8 (на цифровой клавиатуре). Код - замените (0х20) на (0x08)
2
|
![]() ![]() ![]() |
|
27.10.2012, 02:37 [ТС] | 8 |
Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку.
Массовая рассылка файлов
0
|
![]() ![]() ![]() |
||||||||||||||||||||||||||||||||||||
02.11.2012, 18:00 [ТС] | 9 | |||||||||||||||||||||||||||||||||||
Перекодировка текста
Смотрите обновленную тему: Перекодировка текста (сборник кодов для различных кодовых страниц) Из любой кодировки в любую (через утилиту win_iconv)
Скачать утилиту. Синтаксис: Bash iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …] Bash iconv -l Bash win_iconv -f UTF-16LE -t cp866 "UTFtext.txt" > "DOStext.txt" Win <-> OEM (неконсольный - на языке VBA)
Автор: Dragokas Написан на VBA (Excel). Скачать. Для работы необходимо включить макросы: Для Office = 2003: Сервис -> Макрос -> Безопасность -> Выставить "Средний" или "Низкий". Для Office > 2003 MSDN Описание функций:
OEM-866 -> WIN-1251 (на CMD)
OEM-866 -> WIN-1251 (через утилиту на ASM)
Скачать to1251.zip. Самый быстрый перекодировщик. Написан на ассемблере =) Автор: Charles Kludge Использование только через конвейер: Bash ipconfig /all | to1251.exe > result.txt Bash to1251.exe < file1.txt > result.txt Исходник. Код ASM:
Win-1251 -> в Unicode (UTF-16LE) (на CMD)
С возможностью указать исходную кодовую страницу: Использование: Bash Batch.cmd infile outfile src_codepage Batch.cmd - сам Batch-файл infile - файл для перекодировки outfile - выходной файл src_codepage - необязательный параметр. Номер кодовой страницы исходного файла. 2 варианта кода: 1) Исходник кода сохранить в кодировке WIN-1251:
Как настроить кодировку исходного кода Batch-файла, какой выбрать редактор: Русский текст в консоли UTF-8 -> Win-1251 (cmd)
От Smitis
UTF-16 -> OEM-866 (cmd)
UTF-16 -> Win-1251 (cmd)
4
|
![]() ![]() ![]() |
||||||
12.11.2012, 07:27 [ТС] | 10 | |||||
Завершение процесса (оформлено в виде меню).
Развернуть код
4
|
![]() ![]() ![]() |
||||||
12.11.2012, 09:10 [ТС] | 12 | |||||
Создание CAB-архивов
(в т.ч. самораспаковующихся EXE). а также распаковка CAB. Автор: Alex Averchenkoff Развернуть код
3
|
![]() ![]() ![]() |
|||||||||||
18.11.2012, 06:05 [ТС] | 13 | ||||||||||
Смена владельца и прав на папку и ее содержимое, в которой запущен батник (Full Access <-> Read Only)
Автор: Dragokas Обновлено 20.11.2012. Добавлена совместимость с XP и Server 2003. 1) RO.cmd (ReadOnly) - делает все файлы и папки доступными только для чтения и выполнения. Дополнительно разрешается в текущей папке - создавать файлы. Все остальные операции, в т.ч. и создание файлов в подкаталогах - запрещено. 2) FA.cmd (FullAccess) - восстанавливает полный доступ для всех пользователей. Для нормальной работы в ОС Windows Vista, Win 7 батник нужно запускать правой кнопкой мыши "От имени Администратора". FA.cmd будет работать после блокировки RO.cmd-хой только при запуске от Админа. Как пользоваться: Файл множество раз протестирован и безопасен, если будете придерживаться правила: Запускать батник только из той папки, в которой нужно ограничить доступ (RO.cmd) или получить полные права (FA.cmd). Работает рекурсивно для всех подкаталогов, начиная с каталога, где находится батник. Для корректной работы, вероятно, понадобится утилита из Microsoft Support Tools - ICACLS (включена в ОС Windows Server 2003, начиная с SP2). Поддержка: Скрипт протестирован в средах английской и русской локализаций, а также: 1) Windows XP SP2 2) Windows Server 2003 SP2 3) Windows 7 SP1 Исходный код
Сохранять в кодировке OEM-866. FA.cmd
перенаправления потока вывода в NUL. Метод "обворачивания" скобками приводил к синтаксическим ошибкам в силу некоторых особенностей работы утилиты ICACLS. Обсуждение скрипта в теме: Смена владельца и прав на папку и ее содержимое
7
|
![]() ![]() ![]() |
|
26.11.2012, 13:41 [ТС] | 14 |
Пищалка (подобие beep)
на простой команде Эхо. Блокнотом Windows не редактировать! ![]() (использован служебный символ &H07 и кодовая страница OEM-866) Из командной строки звук можно симмитировать нажатием Ctrl+G, {ENTER}.
5
|
7 / 3 / 0
Регистрация: 09.12.2012
Сообщений: 5
|
||||||
09.12.2012, 23:00 | 15 | |||||
Вызов GUI диалогового окна выбора папки
Это HTA-обертка на JavaScript-е для открытия диалогового окна выбора папки через объект WshShell. Развернуть код
Копирайты не помню чьи.
3
|
![]() ![]() ![]() |
|||||||||||
30.12.2012, 04:46 [ТС] | 16 | ||||||||||
Многопроцессное создание пустых файлов (бенчмарк для винчестера)
Код от: Dragokas Спасибо Petya V4sechkin (OSZone) за ценную подсказку о синтаксисе запуска процесса. P.S. Ниже "процессы" названы "потоками" (простите за эту глупую опечатку). Настраиваемые параметры: Set Dest=y:\m2 - каталог, в котором создавать файлы Set /A Potok=50 - общее кол-во запускаемых потоков Set /A PotokMax=8 - максимальное кол-во одновременно запускаемых потоков Set /A Range=10000 - кол-во пустых файлов, создаваемых каждым потоком. Развернуть код
В поданном коде создается 50*10000 = 0,5 млн. файлов, так что попытавшись открыть такую папку даже файловым менеджером все напрочь зависнет. Чтобы удалить созданные файлы, прилагаю еще один бат-файл, который визуально отображает %-ый индикатор завершения удаления файлов. Индикация процесса удаления папки Развернуть код...
5
|
![]() ![]() ![]() |
|||||||||||
03.01.2013, 02:43 [ТС] | 17 | ||||||||||
Помощник компиляции исходных кодов и проектов .NET (.cs / .sln (C#, VB.NET)) через консольный NET.FrameWork компилятор (csc или msbuild)
Автор: Dragokas UPD. 02.03.2017 - добавил скрипт для msbuild. Зачем нужен: Например, в системе не установлена MS Visual Studio или другая среда разработки. Требования: Установленный NET.FrameWork, в некоторых случаях Windows SDK. Использование: 1. Перетянуть на данный скрипт файл с исходным кодом C# (.cs / .sln) - "Drag & Drop" 2. Либо задать как аргумент в консоли, например, compile.cmd source.cs Функционал: Компиляция исходного кода C# с помощью консольного CSC.exe (msbuild) компилятора. Все версии FrameWork-а скрипт находит в папке windows\microsoft.net, после чего дает Вам выбор какой версией компилировать и запоминает ее. Ведет файл-протокола ошибок в DOS (CP-866) и WIN (CP-1251) кодировках и предлагает его сохранить. Ошибки выводит также на экран. В случае их отсутствия, скрипт завершает работу без ожидания. Внутри скрипта есть некоторые комментарии по детальным настройкам. Кликните здесь для просмотра всего текста
P.S. Скрипт для msbuild - упрощённый (лог-файл не ведётся). Кликните здесь для просмотра всего текста
5
|
![]() ![]() ![]() |
|
06.01.2013, 02:03 [ТС] | 18 |
Отслеживание зависшего процесса и его перезапуск с указанным приоритетом
Автор: Dragokas Все параметры настраиваемы (см. начало кода и спойлер). Комментарии писал на английском, уж как есть. Принцип работы: Задаем имя процесса(ов), который будем отслеживать. В системе могут быть несколько процессов с одинаковым именем. Скрипт идентифицирует их по PID и не путается. Если найден процесс с указанным именем и статусом "Not responding", начинается валидация (повторная проверка этого статуса на протяжении заданного времени и указанное кол-во раз). (а вдруг процесс подвис на секунду - не "убивать" же его из-за этого!!!) Если все проверки позитивны, ищем полный путь к процессу по номеру его Process ID (используется инструментарий WMIC). Принудительно завершаем процесс по PID. Выжидаем указанную задержку перед повторным запуском. Запускаем тот же процесс с указанным приоритетом в минимизированном виде. Настройки:
Можно задавать такие паузы (в мс.): 1) между проверками статуса "Не отвечает". 2) продолжительность времени и кол-во дополнительных проверок валидации статуса за это время. 3) перед новым запуском завершенного приложения. Запуск в минимизированном виде: 1 - Да, 0 - Нет. Приоритеты запускаемого процесса: 1 - низкий 2 - ниже среднего 3 - средний 4 - выше среднего 5 - высокий 6 - в реальном времени Имена нескольких процессов задаются через запятую без кавычек, даже если в их имени есть пробел. Upd.3. Подправлено получение пути к процессу из правильного свойства WMIC Process (ExecutablePath вместо CommandLine). Добавлена принудительная минимизация окна с помощью утилиты NirCMD (некоторые программы восстанавливают окно при использовании Start /MIN). В силу особенностей NirCMD процесс нужно вручную задавать на выбор: по имени класса или по имени (части имени) окна. Добавлен автоперезапуск процесса, если через 10 сек. после его запуска оно не набрало указанное число КБайт в оперативной памяти. Скрипт обсуждается здесь Отслеживание зависания (состояния "не отвечает") программы и её перезапуск
7
|
Модератор
![]() ![]() 5240 / 2113 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
|
||||||
08.01.2013, 21:45 | 19 | |||||
Помощь по всем командам вашей версии Windows / DOS
Развврнуть код...
После запуска появятся два текстовых файла. По ходу действия программа будет писать вам, какая команда сейчас обрабатывается. HELP2 - список доступных вам команд. HELP - собственно справка по каждой из них.
5
|
![]() ![]() ![]() |
|||||||||||
15.01.2013, 02:20 [ТС] | 20 | ||||||||||
Прогресс-бар копирования файлов
Автор: Ris Взято из этой темы. Версия 1.5
Юзаем, например, так:
2
|
15.01.2013, 02:20 | |
Помогаю со студенческими работами здесь
20
Bat/cmd
Меню в BAT/CMD Задание CMD/BAT На каком языке программирования пишутся скрипты для bat и vbc? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Protobuf в Go и новый Opaque API
golander 15.03.2025
Распределенные системы опираются на эффективные протоколы обмена данными — о чем вы, скорее всего, прекрасно знаете, если работаете с микросервисной архитектурой. Protocol Buffers (Protobuf) от. . .
|
Преобразование строк в C++: std::from_chars от C++17 до C++26
NullReferenced 15.03.2025
Конвертация строк в числа — задача, с которой сталкивается практически каждый C++ разработчик. Несмотря на кажущуюся простоту, эта операция таит множество подводных камней и неочевидных последствий. . .
|
Управление памятью в Java и новые сборщики мусора
Javaican 15.03.2025
Эффективное управление памятью всегда было ахиллесовой пятой высоконагруженных Java-приложений. При разработке на Java мы обычно полагаемся на автоматическое управление памятью через сборщики мусора. . .
|
Angular или Svelte - что выбрать?
Reangularity 15.03.2025
Во фронтенд-разработке Angular и Svelte представляют собой два совершенно разных подхода к решению схожих задач. Один — полноценный, мощный монолит с корпоративной поддержкой, другой — компактный,. . .
|
Spring Cloud микросервисы: обнаружение и отслеживание
Javaican 15.03.2025
В разработке корпоративных приложений всё больше команд обращают внимание на микросервисную архитектуру. Но с этой архитектурой приходят и специфичные трудности: как сервисам находить друг друга в. . .
|
Запуск контейнера Docker в облаке
Mr. Docker 15.03.2025
Что такое Docker-контейнер? Если коротко — это легковесный, автономный пакет, содержащий всё необходимое для запуска приложения: код, зависимости, библиотеки и конфигурации. Когда мы говорим о. . .
|
Осваиваем Kubernetes: Подробная шпаргалка
Mr. Docker 15.03.2025
Kubernetes — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он был создан для решения проблем, с которыми сталкиваются. . .
|
Лучшие PHP REST API фреймворки
Jason-Webb 15.03.2025
Современные PHP REST API фреймворки предлагают большой набор функциональности: от автоматической валидации данных и управления маршрутизацией до генерации документации и интеграции с различными. . .
|
Многопоточность в Java с Project Loom: виртуальные или обычные потоки
Javaican 15.03.2025
Многопоточность всегда была одноим из основных элементов в разработке современного программного обеспечения. Она позволяет приложениям обрабатывать несколько задач одновременно, что критично для. . .
|
Что нового в Swift 6 и особенности миграции
mobDevWorks 15.03.2025
Swift 6 — это новый крупный релиз языка программирования от Apple, анонсированный на WWDC 2024. Если вы следили за эволюцией Swift, то наверняка заметили, что многие значимые возможности, которые. . .
|