Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/1999: Рейтинг темы: голосов - 1999, средняя оценка - 4.60
Dragokas
Эксперт WindowsАвтор FAQ
17095 / 7150 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
1

Полезные BAT/CMD скрипты

15.10.2012, 00:56. Просмотров 362045. Ответов 167

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

Также приветствуются скрипты высокой степени сложности, полезные с точки зрения
изучения принципа их работы.

Правила темы:
  • При выкладывании скрипта постарайтесь тщательно описывать принцип его работы и по-больше комментировать строки Вашего кода.
  • Код, состоящий из > 4 строк, помещайте под теги [SPOILER="Развернуть код..."]Ваш код[/SPOILER]. Также можно сделать 2 варианта: 1. Чистый код. 2. С комментариями.
  • Запрещаются любые обсуждения выложенных здесь работ;
  • если в этом есть необходимость, создайте отдельную тему в которой опишите замечание или проблему при работе с данным скриптом, указав ссылку на сообщение из этой темы (правый клик по слову "Permalink" вверху каждого сообщения).
  • Если Вы хотите внести исправление в выложенный Вами код - пишите мне в личку ссылку на Ваше старое сообщение и новый исправленный вариант. (полный вариант с тегами Вашего старого сообщения можно получить, нажав на него - кнопка "Цитата").
  • Допускается размещение обзора программ, помогающих редактировать/отлаживать код.


Схожая тема: 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
Прогресс-бар копирования файлов ссылка
Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку. ссылка
Создание нуль-копии папки для выкладывания на форуме ссылка
Получение серийного номера всех съемных устройств и физических жестких дисков (не разделов). Получение имен разделов физических накопителей (кроме оптических). ссылка

Другое
Расчёт индекса массы тела и идеального веса ссылка
19
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 00:56
Ответы с готовыми решениями:

Batch (CMD/BAT) несколько заданий на CMD/BAT
1.Напишите bat файл на диске с ,который будет искать на всех дисках файлы с расширением...

Bat/cmd
Добро утро. Директор придумал просто одну вещь. Изложу ситуацию. У меня есть папка obchee_s_ras...

Задание CMD/BAT
1. Изменить вид приглашения, поместив туда время без секунд и миллисекунд. 2. Создать в текущем...

Меню в BAT/CMD
Вопрос от полного ламера. У меня такая проблемма надо сделать меню в CMD чтобы при нажатии 1...

Сортировка по времени в bat/cmd
сабж в папке А лежит bat, который в папке Б сортирует все файлы по времени и оставляет только 10...

167
Marshak90
0 / 0 / 0
Регистрация: 26.05.2018
Сообщений: 16
03.06.2018, 17:40 161
Таймер на bat с доп. использованием vbs, можно и без него но в конце каждой метки нужно будет заменить пару строчек.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
@echo off
chcp 1251 >nul
title Таймер
:A
color a
echo Выберите подходящий вам пункт меню:
echo 1 - Таймер по секундам
echo 2 - Таймер по минутам
echo 3 - Таймер по минутам и секундам
echo 4 - Таймер по часам
echo 5 - Таймер по часам и минутам
echo 6 - Таймер по часам, минутам и секундам
echo Ваш выбор:
set /p v=
if "%v%"=="1" goto second
if "%v%"=="2" goto minutes
if "%v%"=="3" goto mands
if "%v%"=="4" goto hours
if "%v%"=="5" goto handm
if "%v%"=="6" goto hms
cls
goto a
:second
cls
echo Введите время в Секундах.
set /p s=
echo Вы установили таймер на %s% с.
timeout /t %s% /nobreak
echo Время истекло!
start Таймер.vbs
exit
:minutes
cls
echo Введите время в Минутах.
set /p m=
set /a m1=%m%*60
echo Вы установили таймер на %m% мин.
timeout /t %m1% /nobreak
echo Время истекло!
start Таймер.vbs
exit
:mands
cls
echo Введите время в Минутах и Секундах.
echo Введите время в Минутах:
set /p m=
echo Введите время в секундах:
set /p s=
set /a ma=%m%*60+%s%
echo Вы установили таймер на %m% мин. и %s% с.
timeout /t %ma% /nobreak
echo Время истекло!
start Таймер.vbs
exit
:hours
cls
echo Введите время в Часах.
set /p h=
set /a h1=%h%*3600
echo Вы установили таймер на %h% ч.
timeout /t %h1% /nobreak
echo Время истекло!
start Таймер.vbs
exit
:handm
cls
echo Введите время в Часах и Минутах.
echo Введите время в Часах:
set /p h2=
echo Введите время в Минутах:
set /p m2=
set /a h3=%h2%*3600
set /a m3=%m2%*60
set /a hm=%h3%+%m3%
echo Вы установили таймер на %h2% ч. %m2% мин.
timeout /t %hm% /nobreak
echo Время истекло!
start Таймер.vbs
exit
:hms
cls
echo Введите время в Часах, Минутах и Секундах.
echo Введите время в Часах:
set /p h4=
echo Введите время в Минутах:
set /p m4=
echo Введите время в Секундах:
set /p s4=
set /a h5=%h4%*3600
set /a m5=%m4%*60
set /a hms=%h5%+%m5%+%s4%
echo Вы установили таймер на %h4% ч. %m4% мин. и %s4% с.
timeout /t %hms% /nobreak
echo Время истекло!
start Таймер.vbs
exit
Также в архиве присутствует англ. версия
0
Вложения
Тип файла: rar Timer.rar (143.5 Кб, 27 просмотров)
AlexVrag
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 2
25.02.2019, 14:58 162
Очистка очереди печати

Зачем нужен:
Код очищает очередь, то есть удаляет все задания на печать.

Развернуть код

net stop spooler
del /f /q %systemroot%\system32\spool\printers\*.shd
del /f /q %systemroot%\system32\spool\printers\*.spl
net start spooler
0
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
5335 / 2341 / 321
Регистрация: 13.03.2013
Сообщений: 10,364
Записей в блоге: 5
25.02.2019, 16:29 163
Скрипты на архивирование папок и файлов
7-Zip
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
::отключить все активные сетевые сессии
net session /delete /yes
set source="Источник"
set destination="Назначение"
::установить на архив пароль 123
set passwd="123"
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%dd%-%mm%-%yyyy%
"C:\Program Files\7-Zip\7z.exe" a -ssw -mx5 -mhe -p%passwd% -r0 %destination%\backup_%curdate%.7z %source%

WinRAR
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
chcp 1251
::отключить все активные сетевые сессии
net session /delete
set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
"%ProgramFiles%\WinRAR\Rar.exe" a -r -m5 Директория_Назначения\backup_%year%_%month%_%day%.rar "Источник"
0
greg zakharov
Покинул форум
2300 / 954 / 265
Регистрация: 07.05.2015
Сообщений: 1,865
28.08.2019, 19:13 164
В Win10 не вся телеметрия есть зло, например, RADAR способен фиксировать утечки куч в приложениях, о чем можно узнать заглянув в реестр следующим батей:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo off
  setlocal enabledelayedexpansion
    set "key=HKLM\SOFTWARE\Microsoft\RADAR\HeapLeakDetection"
    set "key=%key%\DiagnosedApplications"
    for /f "tokens=3,7 delims=\ " %%i in (
      '2^>nul reg query %key% /s /v LastDetectionTime'
    ) do (
      if /i "%%~j" neq "" call:printf 37 %%j
      if /i "%%~i" neq "microsoft" (
        for /f "tokens=2 delims=-" %%i in (
          'w32tm /ntte %%i'
        ) do echo:%%i
      )
    )
  endlocal
exit /b
 
:printf
  set "i=%~1" % rem : пробелы выравнивания
  set "s=%~2" % rem : входная строка
  :while
    set "s=!s:~1!"
    if defined s set /a "i-=1"&goto:while
  set "s=%~2" % rem : добавим пробелов
  for /l %%i in (1,1,!i!) do set "s=!s! "
  <nul set /p "=!s!"
exit /b
2
28.08.2019, 19:13
greg zakharov
Покинул форум
2300 / 954 / 265
Регистрация: 07.05.2015
Сообщений: 1,865
03.09.2019, 17:52 165
uptime
Основным отличием от предыдущих версий, встречавшихся в данной ветке, данная версия uptime не использует счетчики производительности, в результате чего скорость работы командного сценария очень высока. Однако на этом достоинства заканчиваются, так как здесь не учитывается локаль времени (только русская локаль), во-вторых, бывает так, что значения ShutdownTime в ресстре попросту не оказывается (а именно оно в данном случае является ключевым). Все остальное - сплошная математика.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@echo off
  setlocal enabledelayedexpansion
    set "key=HKLM\SYSTEM\CurrentControlSet\Control\Windows"
    for /f "tokens=3" %%i in ('reg query !key! /v ShutdownTime') do set "ft=%%i"
    for /l %%i in (16, -2, 0) do set "r=!r!!ft:~%%i,2!"
    for /f "tokens=4,5" %%i in ('w32tm /ntte 0x!r!') do set "d=%%i"&set "t=%%j"    
    call:getHoursDelta !t!
    call:getDaysDelta !d!
  endlocal
exit /b
 
:getDaysDelta
  set "ts=%~1"
  call:toJulianDay !ts:~0,2! !ts:~3,2! !ts:~6,4! ts
  call:toJulianDay !date:~0,2! !date:~3,2! !date:~6,4! now
  set /a "days=!now! - !ts!"
  echo: up !days! days
exit /b
 
:getHoursDelta
  call:toSeconds %~1 a
  call:toSeconds !time:~0,8! b
  set /a "a-=b"
  if !a! lss -1 set /a "a*=-1"
  set /a "h=a/3600, m=a%%3600/60, s=a%%3600%%60"
  for %%i in (h m s) do (
    if !%%i! lss 10 set "%%~i=0!%%~i!"
  )
  <nul set /p "=!h!:!m!:!s!"
exit /b
 
:toJulianDay
  set /a "d=100%~1-100, m=100%~2-100"
  set "jdn=(1461*(%~3+4800+(m-14)/12))/4+(367*(m-2-12*((m-14)/12"
  set "jdn=!jdn!)))/12-(3*((%~3+4900+(m-14)/12)/100))/4+d-32075"
  set /a "%~4=!jdn!"
exit /b
 
:toSeconds
  set "tm=%~1"
  set "i=0"
  for %%i in ("!tm::=";"!") do (
    2>nul set /a "arr.!i!=%%~i"
    set /a "i+=1"
  )
  set /a "s=arr.0*3600+arr.1*60+arr.2"
  set "%~2=!s!"
exit /b
0
dimo70
0 / 0 / 0
Регистрация: 04.09.2019
Сообщений: 2
09.09.2019, 12:17 166
Можно ожидать осовремененный вариант с подключения Windows 10?

Добавлено через 9 минут
вопрос относительно: "Проверка целостности системных файлов утилитой sfc /scannow с выводом лога и автоопределением месторасположения диска." с автором Koza Nozdri
0
Dragokas
Эксперт WindowsАвтор FAQ
17095 / 7150 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
09.09.2019, 19:57  [ТС] 167
dimo70, он обитает на форуме safezone, следовательно и все обновления там.
0
dimo70
0 / 0 / 0
Регистрация: 04.09.2019
Сообщений: 2
10.09.2019, 08:26 168
Dragokas, спасибо.
0
10.09.2019, 08:26
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2019, 08:26

Доступные уроки по CMD/BAT
Гугл и Яндекс молчат по этому поводу. Нужны ссылки на доступные (НЕ видео) уроки, чтобы изучить...

Числовые операторы в CMD/BAT
Чего они делают объясните? взято из set /? Добавлено через 1 час Унарные операторы: set...

Специальные символы в CMD/BAT
Добрый вечер. Вопрос по поводу специальных символов в BAT: &lt; , &gt; , &gt;&gt; , /? , * , ? , ; , | , &amp; ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
168
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru