Скрипты - это просто. Основы языка JScript - написание WSH скриптов

12.07.2019
  • Категоря: Без рубрики
  • Внимай, даю установку: скрипты — это круто. Ты это знаешь, я это знаю, короче — мы это знаем. Установку дал! Успешно. Теперь о них — любимых скриптах — и поговорим. Приятно наваять своими ручками ка- кую-нибудь скриптятину на яве и дать соседу-ламаку пропереться, а по- ка тот будет ее разглядывать — дать ему пинка. Вот только бага: по ходу все клевое в скриптинге уже придумано. Предложить что-либо карди- нально новое (во всяком случае, мне) уже сложно, лучше пива попить пойти. С другой стороны, можно легко насочинять целый ворох вторич- ных вещей, которые при ближайшем рассмотрении сведутся к Нагромож- дению все тех же базовых методов. А это неправильно — вторичное само по себе на хрен никому не нужно. Наконец (не на конец, а в конце концов!)…

    Внимай, даю установку: скрипты — это круто. Ты это знаешь, я это знаю, короче — мы это знаем. Установку дал! Успешно. Теперь о них — любимых скриптах — и поговорим. Приятно наваять своими ручками ка- кую-нибудь скриптятину на яве и дать соседу-ламаку пропереться, а по- ка тот будет ее разглядывать — дать ему пинка. Вот только бага: по ходу все клевое в скриптинге уже придумано. Предложить что-либо карди- нально новое (во всяком случае, мне) уже сложно, лучше пива попить пойти. С другой стороны, можно легко насочинять целый ворох вторич- ных вещей, которые при ближайшем рассмотрении сведутся к Нагромож- дению все тех же базовых методов. А это неправильно — вторичное само по себе на хрен никому не нужно. Наконец (не на конец, а в конце концов!), наступило «творческое озарение»: если нельзя ничего выжать внутри документа, то надо перехо- дить на качественно новый уровень манипуляции самим окном броузера. Сначала чуть-чуть информации для тех, кто забыл (или не знал). В объектной модели современных броузеров (под современными я имею в виду Internet Explorer и Netscape Navigator) есть два очень интерес- ных метода: window.resizeTo (x,y) и window.moveTo (x,y), которые сулят просто огромные возможности. Первый метод изменяет размер «смотро- вого окна» броузера до указанных размеров (то есть х на у пикселей), а второй перемещает само окно, помещая левый верхний угол в точку с ко- ординатами х по горизонтали и у по вертикали. Таким образом, грамотно используя эти два метода, ты легко можешь добиться весьма интересных эффектов, которые буквально валят с ног неподготовленного зрителя.

    Для начала давай рассмотрим простенький скриптик, отвечающий за перемещение окна броузера по десктопу и его отражение от «краев» экрана:

    Окно в стиле Xenix

    // Начинаем script блок function move_the_window(){ // Наша стартовая функция window.resizeTo(screen. width/2, screen, height/2);- // Сначала сжимаем окно до половины рабочего стола window.moveTo(1,1); // Теперь помещаем его в левый верхний угол экрана var x=1; // Это будет наша Х-координата. Вначале равна единице var y=1; // Это будет наша Y-координата. Вначале равна единице var dx=7; // Смещение по X var dy=10; // … и по Y move(); // Теперь вызываем функцию, которая и будет двигать окно function move(){ // .Объявляем функцию while(true){ // Объявляем бесконечный цикл if(x>=(screen.width) || x=(screen.height) || y javascript is cool! Как только страница полностью загружена, вызывается функция move_the_window. Она объявляет все необходимые переменные и помеща- ет окно в левый верхний угол рабочего стола. Методы screen.width и screen.height возвращают нам значения (ширину и высоту) рабочего сто- ла, и, уже зная их, мы сжимаем окно до половины.

    Теперь приступим к функции move. Так как все действия здесь вы- полняются внутри бесконечного цикла, то окно так и будет безостановоч- но бегать по экрану. Попытка же свернуть его через task manager Приведет к интересным визуальным эффектам (советую убедиться на собственном опыте). В случае, если ты хочешь, чтобы цикл выполнялся определенное количество раз, замени оператор while на while(var i < твое число) и добавь в конце цикла оператор i++. С помощью метода resizeTo можно делать довольно любопытные вещи. Посмотри, как можно сжать окно до размеров заглавной рамки и заставить все это, как обычно, бегать по экрану:

    Развитие темы

    // Начинаем script блок function move_the_windows(){ // Наша стартовая функция window. resizeTo(screen.width, 25); // Сжимаем окно номер 1 window.moveTo(0,1); // Теперь помещаем его в левый верхний угол экрана window2 = ореп(\»\», null); // Создаем объект второго окна window2.document.write(\» Window N2\»); // Пишем в не- го заголовок window2.resizeTo(screen.width,25); // Сжимаем его и window2.moveTo(0, screen.height-25); // помещаем в низ экрана var dy1=2; // Начальное смещение для верхнего окна var dy2=-2; // … и для нижнего var y1 = 1; // Y-координата верхнего окна var y2 = screen.height-25; // и Y-координата нижнего move(); // Теперь вызываем функцию, которая и будет двигать оба окна function move(){ // Объявляем функцию while(true){ // Объявляем бесконечный цикл if (y1>=(screen.height) || y1 =(screen.height) || y2 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 или сделать восстановление системы.

    Любой начинающий системный администратор Linux рано или поздно сталкивается с таким понятием, как “скрипт ”, будь то один из загрузочных скриптов вроде /etc/rc.d/rc или написанный разработчиком ПО скрипт конфигурирования configure . В данной статье я постараюсь показать, что написание скриптов на shell не является чем-то из ряда вон выходящим и вполне под силу даже новичку в мире Linux.

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

    Одной из задач системного администрирования является резервное копирование важной информации. Поэтому давайте рассмотрим пример скрипта, реализующего back-up информации.

    Начало начал

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

    Echo This is just example
    whoami
    uname -a

    Эти команды объединены в одном файле. Но shell должен знать, что он должен этот файл обработать, а не просто прочесть его содержимое. Для этого служит специальная конструкция: #!

    Эта конструкция называется «sha-bang ». Вообще-то, # задает комментарий, но в данном случает sha-bang означает, что после нее пойдет путь к обработчику скрипта. Напрмер:

    #!/bin/bash
    #!/bin/sh
    #!/usr/bin/perl

    Мы остановимся на Bash, Bourne-Again shell. Это shell устанавливается по умолчанию практически во всех Linux-системах, и /bin/sh ссылается на него. Об окончании скрипта говорит служебное слово exit.

    Вооружившись этими знаниями, напишем наш первый скрипт:

    #!/bin/bash
    echo Простой скрипт # Команда echo выводит сообщение на экран
    echo Вы:
    whoami # whoami показывает имя зарегистрированного пользователя
    echo Ваша система стартовала
    uptime # uptime показывает время включения машины
    echo Сегодня
    date # date показывает текущую дату и время
    echo Пока все
    exit

    Сохраним этот файл под именем tutor1.sh. Выполним команду чтобы сделать скрипт исполняемым.

    Chmod +rx tutor1.sh

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

    Voland@superstar:~/Doc/Open Source$ ./tutor1.sh
    Простой скрипт
    Вы:
    voland
    Ваша система стартовала
    14:38:46 up 1:48, 2 users, load average: 0.47, 0.43, 0.41
    Сегодня
    Вск Фев 26 14:38:46 MSK 2006
    Пока все

    Переходим к более серьезному.

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

    Перво-наперво, необходимо определить - резервную копию чего мы будем делать. Поэтому наш скрипт должен уметь работать с командной строкой. Аргументы командной строки задаются после имени скрипта через пробел: somescript arg1 arg2 arg3. Скрипт воспринимает аргументы по номерам их следования, поэтому мы будем использовать конструкции вида $номер_аргумента, т.е. $1, $2, $3. $ - это символ подстановки, который нам понадобится и при работе с переменными. Переменные в скрипте задаются в виде имя_переменной=значение. Мы будем использовать переменные MAXPARAMS для определения максимального количества параметров командной строки, BACKUPFILE для задания имени архива, BACKUPDIR для папки, резервную копию которой мы будем делать и ARCHIVEDIR для папки, куды мы поместим архив. Самой главной частью скрипта будут команды поиска и архивации всех найденных файлов и папок в указанной:

    Find . -type f -print0 | xargs -0 tar rvf "$archive.tar" > /dev/null
    gzip $archive.tar

    Давайте разберемся, что же эти команды делают. find ищет в текущем каталоге (об этом говорит первый аргумент ".") все файлы и выдает полный путь к ним (print0). Эти пути перенаправляюся команде tar, которая собирает все файлы в один. Затем командой gzip мы архивируем получившийся tar-файл. Команда > /dev/null удобна, если вы архивируете большое количество файлов. В этом случае их имена и полный путь к ним не выводятся на консоль.

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

    Например, эта конструкция

    If [ $# -lt "$MAXPARAMS" ];
    then
    echo

    echo
    exit 0
    fi

    подскажет, что пользователь указал недостаточное количество аргументов командной строки. If [условие]...fi задает условную конструкцию. $# -lt "$MAXPARAMS" проверяет введенное количество параметров и если это число окажется меньше MAXPARAMS, то пользователю будет выдано сообщение об ошибочном вводе. Exit 0 заставит скрипт прекратить работу без указания кода ошибки. Аналогично проверяется превышение допустимого числа параметров, только вместо ls (less then - меньше, чем), необходимо указать gt (greater then - больше, чем). Теперь, когда основные моменты скрипта разъяснены, можно переходить к полной его версии:

    #!/bin/bash
    # Описание:
    #+ Делает резервную копию всех файлов в указанной директории
    #+ в "tarball" (архив tar.gz).
    #+ Использование:
    #+ sh backup.sh имя_архива папка-источник папка-назначение
    #+

    # Максимальное количество параметров командной строки
    MAXPARAMS=3

    if [ $# -lt "$MAXPARAMS" ];
    then
    echo
    echo "Использование: sh `basename $0` имя_архива папка-источник папка-назначение"
    echo
    exit 0
    fi

    if [ $# -gt "$MAXPARAMS" ];
    then
    echo
    echo "Для этого скрипта нужно только $MAXPARAMS аргументов командной строки!"
    echo
    exit 0
    fi

    # Переменные, которые мы используем в скрипте
    BACKUPFILE=$1-backup-$(date +%m-%d-%Y)
    archive=$BACKUPFILE
    BACKUPDIR=$2
    ARCHIVEDIR=$3

    # Проверяем, есть ли папка-источник и папка-назначение
    if [ ! -e $BACKUPDIR ];
    then
    echo
    echo "\"$BACKUPDIR\" не существует!"
    echo
    exit 0
    fi

    if [ ! -e $ARCHIVEDIR ];
    then
    echo
    echo "\"$ARCHIVEDIR\" не существует, создаем..."
    mkdir $ARCHIVEDIR
    echo "Готово."
    fi

    # Проверяем, есть ли архивы в источнике и назначении.
    cd $ARCHIVEDIR
    if [ -e $archive.tar.gz ];
    then rm $archive.tar.gz
    fi

    cd $BACKUPDIR
    if [ -e $archive.tar.gz ];
    then rm $archive.tar.gz
    fi

    # Главная часть скрипта...
    echo "Делаем резервную копию \"$BACKUPDIR\" в файл \"$archive.tar.gz\"..."
    find . -type f -print0 | xargs -0 tar rvf "$archive.tar" > /dev/null
    gzip $archive.tar
    echo "\"$BACKUPDIR\" была успешно заархивирована в файл \"$archive.tar.gz\"."

    # Перемещаем архив в папку ARCHIVEDIR
    echo "Перемещаем архив \"$archive.tar.gz\" в папку \"$ARCHIVEDIR\"."
    mv $archive.tar.gz $ARCHIVEDIR/$archive.tar.gz
    echo "Готово."

    Надеюсь, основные моменты я прокомментировал достаточно подробно. Если у вас возникли какие-либо вопросы, то вы можете связаться со мной по адресу [email protected] Рекомендую также замечательную книгу Advanced Bash-Scripting Guide Менделя Купера (Mendel Cooper), которая очень помогла мне в свое время, когда я только знакомился со скриптами. Удачного программирования.

    P.S. Большое спасибо mar за ее замечания и советы.

    Хорошие скрипты продаж на 80% увеличивают вероятность успешного закрытия сделки, а следствие . Рассказываем об алгоритме их построения, приводим примеры результативных скриптов и показываем, какое it-решение упростит процесс их использования, тестирования, изменения и обучения менеджеров.

    Любая продажа – это общение с клиентом. И этот процесс обязательно должен быть регламентирован, протестирован и желательно автоматизирован. Для отличных продаж вам нужна схема разговора — последовательность вопросов/предложений менеджера и возможных вариантов ответа клиентов.

    Зачем нужны скрипты продаж:

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

    Шаг 1. Подготовка

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

    Портрет клиента. Определите, кто ваша целевая аудитория: мужчины/женщины, возраст, доход, сфера деятельность, вовлеченность в социальные сети и т.д. Далее оцените, это лицо принимающее решение в компании или нет, можно ли дозвониться клиенту напрямую или только через секретаря.

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

    Знание продукта . Очень важно четко представлять, какой продукт вы продаете, какие проблемы он решает, какие есть преимущества, чем отличается от конкурентов, почему ваше предложение уникально, какие виды продукта бывают, насколько можно адаптировать его под каждого клиента.

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

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

    А есть другой подход. Когда нужно подстроиться под ответы собеседника. Там нужна «рыба» скрипта продаж, чтобы менеджер не отклонялся от цели и не забыл задать самые важные вопросы. Но при этом, у него есть свобода в словах и предложении продукта.

    Шаг 2. Составление скрипта

    Подход к написанию скрипта продаж.

    Кто и как может создать скрипт:

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

    Менеджер. Можно попросить лучшего менеджера составить скрипт продаж, а потом уже руководитель отдела продаж исправит слабые места, поможет усилить важные моменты.

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

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

    Какие фразы помогают начать разговор:

    • Вы оставили заявку на нашем сайте в 15.00
    • Сейчас вы находитесь на странице с таким-то нашим продуктом. Давайте помогу во всем разобраться
    • Я обещал вам позвонить, когда вы откроете мое коммерческое предложение. Вижу, что открыли, и вот звоню (читайте, как составить коммерческое предложение с wow-эффектом)
    • Мне рекомендовал позвонить вам Иванов Иван Иванович
    • Вы оставили свои контакты на нашем стенде на такой-то выставке

    Какие фразы помогают выяснить потребности:

    • Что для вас важно?
    • Что для вас неприемлемо?
    • Какие ваши предпочтения?
    • Выберите из перечисленных мною вариант, который бы вас устроили?
    • Кто будет принимать окончательное решение? Нужно ли вам с кем- то посоветоваться?
    • На какой бюджет вы рассчитываете?
    • Если мы поступим так, вам будет удобно?

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

    • Что нужно сделать, чтобы наша сделка состоялась?
    • Какие условия, помогли бы вам сейчас принять решение?
    • Какой пункт договора нужно исключить, чтобы вы его подписали?
    • Какие условия оплаты вы бы хотели получить, чтобы сейчас принять решение?
    • Давайте договоримся о следующем звонке/встрече?

    Нужны ли эмоции. Безусловно! Человек по телефону должны ощущать ваше отношение к нему. Для этого можно использовать слова чувств: «Мы рады вас слышать», «Это отличное предложение», «Мне кажется, вам нравится мое предложение», «Вы абсолютно правы». По сути во время разговора менеджер должен улыбаться и чувствовать собеседника.

    Длина скрипта продаж. Это зависит от цели разговора. Если ваша задача продать, то вы можете общаться пока не достигнете цели. Если ваша цель — промежуточный этап (назначение встречи), то не занимайте у потенциального клиента более 5 минут.

    Шаг 3. Тестирование скрипта

    Вы написали скрипт продаж, теперь его надо проверить и скорректировать. Сначала сценарий разговора можно проверить на самих менеджерах, потом на небольших клиентах. «Шлифовка» скрипта – это большой и трудоемкий процесс. Он может занять до 1,5 месяцев.

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

  • Разговаривают ли менеджеры по скрипту
  • Движется ли разговор к поставленной цели по скрипту
  • Все ли варианты ответов/возражений клиента учтены в скрипте
  • Удалось ли удержать внимание клиента
  • Какие фразы или слова привели к срыву переговоров
  • После этого исправляйте и улучшайте скрипт. Помните, что идеального скрипта не бывает. Любая новая фраза может улучшать или ухудшать конверсию. Работайте над скриптом, а скрипт будет работать над ростом ваших продаж.

    Чтобы увеличить эффективность , вы можете использовать сервис HyperScript. Он поможет:

  • Создавать и редактировать ваш скрипт в удобном визуальном редакторе, а не печатать на бумаге для каждого менеджера
  • Схема продаж

    2. Быстро распространять изменения. Ваши менеджеры всегда будут видеть актуальную версию скрипта

    Актуальная версия скрипта продаж

    3. Предоставить сотрудникам удобный интерфейс работы со скриптом в режиме реального времени – на каждый ответ клиента автоматически отображается то, что нужно говорить менеджеру.

    Быстрая корректировка скрипта

    4. Автоматически измерять и сравнивать конверсию скриптов.

    5. Автоматически измерять и сравнивать конверсию операторов.

    Конверсия

    6. Определять, на каком шаге скрипта обрывается больше всего разговоров

Похожие статьи