Обучение написанию скриптов. Пишем программы (скрипты) в Блокноте Windows. Прерывание выполнения сценария

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

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

Немного терминологии:

  • VBS - язык программирования для создания скриптов в ОС Windows, создается/редактируется в Блокноте Windows, имеет разрешение ".vbs". Думаю, продолжать не имеет смысла, ибо это мало о чем скажет, особенно новичкам. Интересующимся - .
  • BAT - пакетный файл, в народе просто "батник". Расширение файла ".bat". Дальше аналогично - .

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

Для наглядности пример (слева - Блокнот Windows, справа - Notepad++):

Приступим

Если вы уже знакомы с VBS скриптами и батниками, то скорее всего нижеследующие примеры вам будут неинтересны, если же вы новичок, то для первоначального ознакомления - то, что нужно.

Научим компьютер здороваться

  • Открываем Блокнот (или Notepad Plus Plus).
  • Копируем в вставляем код:

    Set sapi=CreateObject("sapi.spvoice")
    sapi.Speak "Hello!"

  • Обязательное условие: кавычки должны быть “такими”, «ёлочки» не подойдут, скрипт не будет обрабатываться и выйдет ошибка. Вместо слова "Hello" можете написать что угодно, даже по русски, при наличии русского голосового движка.
  • Дальше выбираем Файл - Сохранить как - Тип файла - Все файлы - название.vbs
  • Называйте файл как хотите, но не забудьте в конце прописать расширение - .vbs (пример - Privet.vbs).
  • Теперь пробуйте проверить свой скрипт - запустите файл двойным щелчок мыши.
  • Один нюанс: если вы прописали в кавычках слова русскими буквами, а при запуске произносится непонятно что, то у вас просто не установлен русский голосовой движок. Подробная установка и настройка голосового движка выходит за рамки нашей статьи, поэтому более подробно ознакомьтесь и вновь возвращайтесь сюда.

    Теперь, сделаем следующее: пропишем данный скрипт в автозагрузку, а это означает то, что при запуске компьютера вам будет произнесено написанное в программе слово (слова), если как в примере, то будет говорить - "Hello" при каждом включении компьютера. Как это сделать?

    Все просто, программу (скрипт) добавить в автозагрузку можно таким же образом, то есть через такой же VBS скрипт. Создаем файл в блокноте, копируем/вставляем (Ctrl+C/Ctrl+V) следующий код:

    Dim vOrg, objArgs, root, key, WshShell
    root = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
    KeyHP = "Program"
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.RegWrite root+keyHP,"C:\Privet.vbs /autorun"

    Изменяем путь до скрипта "говорилки", вот эту строчку - C:\Privet.vbs на свою. Прописываем где у вас лежит этот скрипт и как называется. Дальше сохраняем только что созданную мини программу в блокноте и запускаем. Все, теперь компьютер будет с вами здороваться пр каждом включении.

    Открыть дисковод

  • Открыть блокнот. Скопировать/Вставить следующий код:

    Set a = CreateObject("WMPlayer.OCX.7")
    Set b = a.CdromCollection
    Set c = b.Item(0)
    Set d = c.Eject

  • Сохранить с расширением.vbs
  • Запустить скрипт и откроется дисковод.
  • Есть более интересная модификация данного скрипта:

    Set WMPlayer = CreateObject("WMPlayer.OCX.7")
    do
    WMPlayer.CdRomCollection.Item(0).Eject()
    loop

    В данном случае будет все время открываться-закрываться CD/DVD-привод, на ноутбуках в этом случае будет открываться после каждого его закрытия.

    Внимание! Второй код (открытие-закрытие дисковода), некоторые антивирусы видят как вредоносную программу. Антивирус Касперского (в т.ч. и ) его видит именно так и уничтожает сразу же. В первом же случае (просто открытие дисковода) для антивирусных программ не является вредоносным скриптом.

    Чтобы прекратить автоматически открывать-закрывать дисковод необходимо:

  • Запустить диспетчер задач ( - Ctrl+Alt+Del).
  • Перейти на вкладку "Процессы".
  • Найти процесс wscript.exe - правая кнопка мыши - завершить процесс.
  • Игра

    Интересная находка из Сети - игра на VBS. Необходимо угадать число от 0 до 100. Скрипт автоматически при запуске задает (разгадывает) число, которое вам необходимо угадать и ввести в специальном окошке, при неправильном ответе даются подсказки, например меньше или больше.

    Ниже тот самый код который необходимо скопировать и вставить в блокнот, далее сохранить (расширение.vbs).

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

    Set y = CreateObject("Scripting.FileSystemObject")
    Set y = Nothing
    Do
    a = 0
    u = 0
    Randomize
    Number = Int((RND*99)+1)
    MsgBox "Я загадал число от 1 до 100, попробуй отгадать",64,"Угадайка"
    Do
    a = a + 1
    c = InputBox("Угадай число" & vbCrLf & vbCrLf & "Попытка: " & a & vbCrLf & vbCrLf & "Чтобы посмотреть результаты введите число!" & vbCrLf & vbCrLf & "Для выхода оставьте поле пустым" & vbCrLf & vbCrLf,"Угадайка")
    If c = "!" Then CreateObject("WScript.Shell").Run "notepad C:\Windows\Result.dll",3,True: Exit Do
    If c "" Then
    If IsNumeric(c) = True Then
    If CInt(c) < Number Then MsgBox "Нет,это не " & c & ". Я загадал число больше",64,"Угадайка"
    If CInt(c) > Number Then MsgBox "Нет,это не " & c & ". Я загадал число меньше",64,"Угадайка"
    If CInt(c) = Number Then
    Set y = CreateObject("Scripting.FileSystemObject")
    MsgBox ("Количество попыток: " & a)
    If MsgBox ("Правильно, это было число " & c & ". Начать заного?",36,"Угадайка") = 6 Then Exit Do Else WScript.Quit
    End If
    Else
    MsgBox "Это не число!",16,"Угадайка"
    a = a - 1
    End If
    Else
    a = a - 1
    l = MsgBox ("Ты ничего не ввел. Выйти из программы?",36,"Угадайка")
    If l = 6 Then WScript.Quit
    End If
    Loop
    loop

    Ну и перед тем как переходить к батникам (.BAT) воспользуемся самым полезным VBS скриптом из всех перечисленных в этой статье.

    Скрипт закрывающий wscript.exe

    Сам скрипт:

    Set TaskKill = CreateObject("WScript.Shell")
    TaskKill.Run "TaskKill /f /im wscript.exe"

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

    Немного познакомились с VBS скриптами и о том как их писать в блокноте, теперь рассмотрим несколько примеров использования BAT файлов (далее - батник).

    Совсем простой батник состоящий всего из одной строки.

  • Открываем Блокнот.
  • Пишем следующий код:

    shutdown -s -t 1 -c -f

  • Далее Файл - Сохранить как - нзвание.bat
  • Обратите внимание на расширение файла, это уже не VBS скрипт, а батник, по этому в конце названия прописываем.bat (Пример compoff.bat).
  • Запускаем только что созданный батник двойным щелчком мыши и компьютер выключится (Завершение работы).
  • Есть такой вариант кода:

    shutdown -r -t 1 -c -f

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

    Удаление обновлений

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

    @echo
    echo
    echo Step 1: Delete Updates Telemetry
    wusa /uninstall /kb:3068708 /quiet /norestart
    wusa /uninstall /kb:3022345 /quiet /norestart
    wusa /uninstall /kb:3075249 /quiet /norestart
    wusa /uninstall /kb:3080149 /quiet /norestart

    Таким образом можно удалить абсолютно любое обновление, даже назойливое KB971033 которое проверяет .

    В Интернете встречается много различных скриптов, якобы безвредных, но будьте осторожны, прежде чем пробовать непонятно какой скрипт, некоторые из них могут навредить, например - вносить изменения в реестр, а в случае каких ошибок система будет выдавать ошибки, в таком случае придется или Windows или сделать восстановление системы.

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

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

    Сразу скажу, что я сам с этим столкнулся, так что все это прошло через мои мучения….

    Рассматривать я буду следующие моменты:


    2. Где зарыта «@»?
    3. register_globals = Off и никак иначе.
    4. Основные аспекты синтаксиса. Литерал ор нот литерал…

    1. Настройка PHP для локальной машины и на сервере.

    Почему я именно с этой главы начинаю. Дело в том, что многие на локальной машине сразу отключают показ всех ошибок. Это – НЕ правильно. Вместо того чтобы тупо смотреть в монитор и искать, где, как окажется, не хватает точки с запятой, можно по ошибке, выдаваемой PHP сразу понять, в чем дело.

    Но сначала хочу сделать небольшое лирическое отступление по части того, как настраивать PHP, как Apache modul или fast-CGI.
    Самый оптимальный вариант – настраивать, как модуль веб-сервера. Для этого в конфигурационном файле httpd.conf веб-сервера Apache пишем следующие строчки:

    LoadModule php4_module D:/bin/php/sapi/php4apache2.dll AddType application/x-httpd-php .php .phtml .php4 .php

    Отличие от FastCGI – следующие. Первое. При FastCGI php.ini будет подгружаться в память веб-сервера приблизительно каждый второй раз при запуске скрипта, при установке, как модуля Apache загрузка конфигурации PHP будет осуществляться только при загрузке или рестарте веб-севрера, само собой быстродействие и нагрузка на сервер будет меньше. Помимо этого, при установке как fastCGI недоступны определенные функции. Начинающему программисту они не понадобятся., но при разработке крупного Интернет-приложения вы можете столкнуться с проблемами. А проблемы лучше предотвращать.

    Теперь перейдем к конфигурации самого PHP. В конфигурационном файле php.ini в обязательном порядке устанавливаем следующие директивы с ниже написанными значениями:

    error_reporting = E_ALL display_errors = On display_startup_errors = On

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

    short_open_tag = Off Для того, чтобы нельзя было использовать