Что такое файлы сценариев
Здесь полезно отметить, что m-файлы, создаваемые редактором/отладчиком, делятся на два класса:
файлы-сценарии, не имеющие входных параметров;
файлы-функции, имеющие входные параметры.
Файл сценарий называется также Script-файлом или просто скриптом.
Файл-сценарий имеет весьма простую структуру:
% Основной комментарий, если необходимо.
% Дополнительный комментарий, если необходимо.
Тело программы с любыми допустимыми выражениями.
Важными являются следующие свойства файлов-сценариев:
Они не имеют входных и выходных аргументов.
Работают с данными из рабочей области.
В процессе выполнения не компилируются.
Представляют собой последовательность операций, аналогичную той, что используется в сеансе работы из командной строки.
Пример. Видимый в окне редактора на рис. 1 файл является файлом-сценарием, или Script-файлом.
Отличие М-файла функции от сценария состоит в том, что он является аналогом подпрограммы типа function в языке Pascal.
Файл-функция имеет входные параметры, список которых указывается в круглых скобках. Используемые в файле-функции переменные являются локальными переменными, изменение значений которых в теле функции никоим образом не влияет на значения, которые те же самые переменные могут иметь за пределами функции.
Иными словами, локальные переменные могут иметь те же имена (идентификаторы), что и глобальные переменные (хотя правила культурного программирования не рекомендуют смешивать имена локальных и глобальных переменных). В дальнейшем мы рассмотрим этот вопрос более подробно, а пока вернемся к описанию интерфейса компонентов системы MATLAB.
Структура М-файла функции с одним выходным параметром имеет вид:
function var = f _ name (Список параметров)
% Основной комментарий, если необходимо.
% Дополнительный комментарий, если необходимо.
Тело программы с любыми выражениями.
М-файл функция обладает следующими свойствами:
Он начинается с ключевого слова function, после которого указывается имя переменной var – выходного параметра, имя самой функции f _ name и список ее входных параметров, отделенных запятой.
Внимание: Имя М-файла функции должно совпадать с именем самой функции (f _ name) . MATLAB автоматически присваивает данное имя при выполнении команды Save as.
Результат выполнения М-файла функции присваивается имени функции, которое может использоваться в математических выражениях подобно функциям sin(x), log(x) и т. п.
Все переменные, используемые в файле-функции, являются локальными, т.е. действуют только в пределах тела функции.
Последняя конструкция vаг=выражение вводится, если требуется, чтобы функция возвращала результат вычислений. Вместо имени var можно ипользовать любое другое имя.
Файл-функция является самостоятельным программным модулем, который связан с другими модулями и головной программой через входные и выходные параметры.
При вызове файла-функции он компилируется и затем исполняется.
m-файл функция должен сохраняться в ваш рабочий каталог.
Пример. m-файл, содержащий текст
Данную функцию можно использовать, например, следующим образом:
Упражнение 2. Выполнить данный пример, придумав свою собственную функцию.
Основы программирования
Программирование в системе MATLAB является средством ее расширения и использовании в решении специфических проблем. Некоторые вопросы программирования изложены выше, здесь рассмотрим правила, дополняющие синтаксис языка MATLAB.
Программы оперируют с переменными и константами. Переменные – это имеющие имена объекты, способные хранить разные по значению данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.
Для задания переменным определенных значений используется оператор присваивания, вводимый знаком равенства =
Имя _ переменной = Выражение ;
Типы переменных заранее не объявляются. Они определяются выражением, значение которого присваивается переменной.
Имя переменной может содержать сколько угодно символов, но идентифицируется только 31 начальный символ. Имя любой переменной должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо включать в имена пробелы и специальные знаки.
Если математическое выражение выходит за размер экрана монитора, то целесообразно перенести его часть на следующую строку. Для этого используется символ многоточие … - три и более точки. В командном режиме число возможных символов в одной строке – 4096, в М-файле – не ограничено, но с такими длинными строками работать неудобно. Поэтому применение в файлах-сценариях символа переноса строки улучшает наглядность программ.
Ввод и вывод данных
В языке MATLAB нет явных операторов ввода вывода данных в режиме диалога. Эта проблема решается для ввода данных оператором присваивания и использованием системных констант. Вывод данных осуществляется еще проще. Для этого необходимо после математического выражения не ставить символ точку с запятой (;).
К системным константам относятся:
pi = 3,1415 … число “ПИ”;
i или j - мнимые единицы;
NaN - неопределенность в виде 0/0;
Inf - бесконечность типа а/o ;
ans результат последней операции.
Весьма часто необходимо выполнить формирование упорядоченных числовых последовательностей. Такие последовательности нужны для созда-ния векторов или значений аргументов х при построении графиков. В MATLAB для этого используется оператор двоеточие (:), который представляется следующим образом:
х = Начальное _ значение : Шаг : Конечное _ значение ;
s = [2 2.25 2.5 2.75 3]
Примечание. Более сложные элементы программирования будут рассмотрены позднее.
Сценарием называют текстовый файл, каждая строка которого содержит одну команду.
Сценарий можно вызывать при загрузке программы или во время сеанса работы с помощью команды ПАКЕТ . Сценарий предоставляет простой способ создания презентации (непрерывно сменяющихся на экране изображений) для демонстрации изделий, например, на торговых выставках.
До печати нескольких документов, используя команды файла сценария, системной переменной BACKGROUNDPLOT следует присвоить значение 0.
Файлы сценариев создаются вне программы в текстовом редакторе (Блокнот Microsoft® Windows®) или текстовом процессоре (Microsoft Word), способном сохранять файлы в формате ASCII. При этом имя файла должно иметь расширение .scr.
Каждая строка файла сценария содержит какую-либо команду. Каждый пробел в файле сценария является значимым, так как переменная SPACEBAR воспринимается как сигнал к завершению ввода данных. Необходимо хорошо знать последовательность запросов, чтобы правильно написать файл сценария.
Примечание Необходимо иметь в виду, что последовательности запросов и имена команд могут быть изменены в последующих версиях, и может потребоваться изменить сценарии при обновлении версии программы. По той же причине не следует использовать сокращенные имена команд и опций; добавление новых команд и опций может привести к недоразумениям.С помощью сценария можно выполнить любую команду в командной строке, кроме команды, при выполнении которой отображается диалоговое окно. В большинстве случаев команде, при выполнении которой отрывается диалоговое окно, соответствует альтернативный вариант - команда, при выполнении которой вместо диалогового окна отображается командная строка.
В файлы сценариев можно включать комментарии. Комментарием считается любая строка, начинающаяся с точки с запятой (;), она игнорируется при обработке файла сценария. Последняя строка файла сценария должна быть пустой.
Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Например, для открытия чертежа my house.dwg из сценария следует использовать следующую запись:
В сценариях часто используются такие команды:
Задержка выполнения следующей команды на заданное количество миллисекунд
Переключение из текстового окна в область рисования
Возобновление выполнения прерванного файла сценария
Повторное выполнение файла сценария
Переключение в текстовое окно
Если вызов команды производится из файла сценария, подразумевается, что параметры системных переменных PICKADD и PICKAUTO имеют значения 1 и 0, соответственно. Это избавляет от необходимости проверять значения данных переменных.
Сценарий воспринимается как группа команд, которую можно отменить одним вызовом команды О. Однако, поскольку каждая выполняемая команда сценария регистрируется в файле журнала отмены, обработка сценария может замедлиться. При необходимости перед запуском сценария (или в начале самого сценария) средство отмены действия команд можно отключить с помощью опций "Управление" - "Ничего" команды ОТМЕНИТЬ. Не забудьте снова включить его (команда ОТМЕНИТЬ, опции "Управление" - "Все") по завершении выполнения сценария.
Выполнение сценария прекращается при вызове другой команды сценария.
Данный сценарий включает сетку, задает глобальный коэффициент масштаба типов линий 3.0, выбирает в качестве текущего слой 0 и назначает ему цвет "Красный".
- В текстовом редакторе введите сетка вкл.
- На следующей строке введите ltscale 3.0.
- На следующей строке введите слой установить 0 цвет красный 0.
- Добавьте пустую строку.
- Сохраните файл в текстовом формате ASCII (как TXT-файл) с расширением .scr.
Содержание
Решение 1. Проверьте запись процесса Winlogon в реестре
Давайте проверим ситуацию, когда файл скрипта уже удален, к примеру, антивирусом, а запись в реестра ещё присутствует, которая и вызывает данную ошибку скрипта.
- Откройте редактор реестра, нажав Win+R набрав regedit в строке Выполнить и нажав клавишу Enter.
- Перейдите по следующему пути в редакторе:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Выйдите из системы и войдите снова, чтобы проверить, исчезла ли ошибка.
Решение 2. Исправьте запись .vbs скриптов в реестре
- Нажмите комбинацию клавиш WIN+R, чтобы запустить утилиту Выполнить, введите regedit и нажмите Enter.
- После открытия редактора реестра перейдите к следующему ключу:
Решение 3. Создайте пустой скрипт
Если вы не можете найти, какая программа вызывает этот скрипт, и вы все перепробовали, попробуйте воссоздать файл-скрипт и посмотреть, решит ли это данную проблему. Приведем пример на ошибке, которая представлена на скриншоте, но так можно попробовать сделать с любым отсутствующим файлом-сценарием.
- Щелкните правой кнопкой мыши в любом месте области рабочего стола, выберите Создать в контекстном меню и нажмите Текстовый документ.
- В текстовом документе (блокноте) введите следующий текст:
После проделанных манипуляций перезагрузите компьютер, если окно с ошибкой больше не повляется, значит данное решение помогло. Это решение можно пробовать с разными отсутствующими файлами сценариями.
Решение 4. Выполните проверку системных файлов
Для запуска SFC сделайте следующее:
- Нажмите правой кнопкой мыши на кнопке Пуск и в появившемся меню выберите Windows PowerShell (администратор).
- В появившемся окне Контроль учетных записей нажмите кнопку Да
- В окне Windows PowerShell введите команду:
Решение 5. Запустите антивирусное сканирование
В любом случае, лучше проверить системный диск любым антивирусным решением или встроенным программным обеспечением Защитник Windows для сканирования и устранения проблемы. Также обязательно проверить ту папку, на которую указывает ошибка и в будующем стоит обратить внимание на недостаточную защиту компьютера от вирусов, так как он смог попасть на Ваше устройство.
Комментарии
Спасибо огромное. 3й способ сработал. Всех благ автору Первый же способ решим проблему на win 10, рекомендосьенс )Добавить комментарий
Используя наш веб-сайт, вы соглашаетесь на использование файлов cookie.
Подробнее
Cookies are short reports that are sent and stored on the hard drive of the user's computer through your browser when it connects to a web. Cookies can be used to collect and store user data while connected to provide you the requested services and sometimes tend not to keep. Cookies can be themselves or others.
М-файлы сценариев и функций. Структура и свойства файлов сценариев.
Итак, мы установили, что работа в командном режиме (сессия) не является программированием. Внешним атрибутом последнего в MATLAB служит задание последовательности действий по программе, записанной в виде m-файла. В уроке 5 было показано, что для создания m-файлов может использоваться как встроенный редактор, так и любой текстовый редактор, поддерживающий формат ASCII. Подготовленный и записанный на диск m-файл становится частью системы, и его можно вызывать как из командной строки, так и из другого m-файла. Есть два типа m-файлов: файлы-сценарии и файлы-функции. Важно, что в процессе своего создания они проходят синтаксический контроль с помощью встроенного в систему MATLAB редактора/отладчика m-файлов.
Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру:
Важны следующие свойства файлов-сценариев:
- они не имеют входных и выходных аргументов;
- работают с данными из рабочей области;
- в процессе выполнения не компилируются;
- представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии.
Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки. Основной комментарий выводится при выполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help Имя_файла. Рассмотрим следующий файл-сценарий:
%с выведенной масштабной сеткой в интервале [xmin.xmax]Обратите внимание на то, что такой файл нельзя запустить без предварительной подготовки, сводящейся к заданию значений переменным xmin и хmах, использованным в теле файла. Это следствие первого свойства файлов-сценариев – они работают с данными из рабочей области. Переменные, используемые в файлах-сценариях, являются глобальными, т. е. они действуют одинаково в командах сессии и внутри программного блока, которым является файл-сценарий. Поэтому заданные в сессии значения переменных используются и в теле файла. Имена файлов-сценариев нельзя использовать в качестве параметров функций, поскольку файлы-сценарии не возвращают значений. Можно сказать, что файл-сценарий – это простейшая программа на языке программирования MATLAB [Файлы-сценарии нельзя компилировать. Перед компилированием их нужно преобразовать в файлы-функции – Примеч. ред.].
Компонент Windows Script Host (WSH) является мощным, полезным и гибким средством для выполнения сценариев в среде Windows, но при этом он представляет собой довольно сложный инструмент. Для начала я расскажу о том, что такое WSH и какие механизмы предоставляет данный компонент для выполнения сценариев в Windows. Затем мы рассмотрим различные типы файлов сценариев и способы их запуска. В следующих статьях я расскажу об особенностях формата файлов .wsc и объясню, что такое компоненты сценариев Windows (Windows Script Components (WSC)).
Что такое WSH?
WSH - это компонент Windows, предоставляющий среду для выполнения сценариев на уровне операционной системы (в отличие от некоторых других контекстов, таких как Web-браузер). WSH не является языком, как, например, Perl, или интерпретатором сценариев, как perl.exe, он представляет собой построенный на базе технологии COM сервер, предназначенный для выполнения сценариев в Windows. В операционных системах версии Windows 2000 и более новых версиях WSH является встроенным компонентом. Для более ранних платформ, таких как Windows NT 4.0 и Windows 98, данный компонент может быть загружен с Web-сайта Microsoft и установлен отдельно.
В WSH имеется две стандартные среды исполнения: VBScript и JScript. VBScript обычно используется при разработке сценариев, предназначенных для решения задач системного администрирования, а JScript (реализация JavaScript от Microsoft) чаще применяется в Web-браузерах, поскольку JavaScript поддерживает широкий спектр различных платформ. В зависимости от типа решаемых задач для разработки сценариев на базе WSH пригодны оба языка. Если в системе установлены соответствующие исполнительные механизмы для поддержки других языков, то сценарии, разработанные на этих языках, также могут выполняться через WSH.
В WSH имеется стандартный набор объектов, предоставляющих весьма полезные возможности. Некоторые из этих объектов, например объект WScript и связанные с ним объекты и коллекции, могут существовать только в сценариях, выполняемых через WSH (т.е. метод WScript.Echo не может быть использован в секции сценариев Web-страницы). Однако многие из этих объектов являются универсальными и могут применяться в любых совместимых с COM языках программирования.
Существует два основных типа сценариев WSH: автономные сценарии (т.е. ориентированные на конкретный язык) и файлы .wsf (Windows script file). Файлы автономных сценариев имеют расширения, зависящие от типа языка, например, .vbs (VBScript) или .js (JScript). Что же касается сценариев .wsf, то они являются текстовыми файлами формата XML, нейтральными по отношению к тому или иному языку, и предоставляют ряд возможностей, которых лишены автономные сценарии. В WSH имеется два сервера сценариев, WScript и CScript, которые будут кратко рассмотрены далее. Здесь также имеется технология WSC, ранее известная как серверные сценарии, с помощью которой в сценариях можно создавать свои COM-компоненты.
Серверы сценариев
Сценарии WSH могут выполняться двумя способами: через сервер WScript, поддерживающий графический интерфейс пользователя, и через консольный сервер сценариев CScript. Серверы сценариев реализованы в виде двух исполняемых файлов: wscript.exe и cscript.exe, соответственно. По умолчанию в Windows используется сервер WScript, но эту установку можно изменить. О том, как это делается, мы поговорим чуть ниже.
Оба рассматриваемых сервера сценариев поддерживают ряд параметров командной строки, с помощью которых можно управлять ходом выполнения сценария и задавать сервер, используемый в системе по умолчанию. Когда сценарий запускается через графический интерфейс пользователя или через командную строку, но при этом вводится только имя файла сценария, он будет выполняться через тот сервер сценариев, который задан в системе по умолчанию. Перечень существующих параметров командной строки можно посмотреть, запустив из командной строки одну из следующих команд:
Параметры командной строки приведены в Таблице 1. Обратите внимание, что при указании в командной строке параметров сервера сценариев перед ними необходимо вводить символы двойного прямого слеша (//), что позволяет предотвратить путаницу с ключами командной строки пользовательских сценариев, где используется одинарный символ прямого слеша (/). Например, если требуется установить CScript в качестве используемого по умолчанию сервера сценариев, а также отключить вывод логотипа и сохранить данную конфигурацию для текущего пользователя, можно запустить из командной строки следующую команду:
Если при запуске имя сервера сценариев указывается в явном виде (т.е. команда запуска начинается со слова CScript или WScript), то также необходимо указывать и расширение файла сценария. Например, показанная ниже команда
работать не будет, а команда:
выполнится успешно (при этом, разумеется, предполагается, что файл сценария hello.vbs имеется в текущем каталоге). Если в командной строке набирается только имя сценария без указания сервера сценариев или расширения, то сценарий будет запущен через сервер, используемый в системе по умолчанию.
Для того чтобы определить, какой именно сервер сценариев используется по умолчанию в данный момент в вашей системе, щелкните в проводнике Windows правой кнопкой мыши на имени любого файла сценариев и посмотрите на появившееся контекстное меню. Если в нем жирным шрифтом выделен пункт Open with Command Prompt («Открыть в командной строке»), то система использует по умолчанию CScript. Если же жирным шрифтом выделен пункт Open, тогда используемым по умолчанию является сервер WScript.
Свойства файла сценариев
Свойства файла сценариев доступны через соответствующее диалоговое окно, которое можно вызвать, щелкнув правой кнопкой мыши на имени сценария в проводнике Windows и выбрав из контекстного меню пункт "Свойства" (Properties). Затем следует перейти к закладке Script, которая показана на экране 1. Два параметра, доступные на этой вкладке, соответствуют двум параметрам командной строки: ключам //T и //Logo (или //Nologo). Если выбрать любой из этих параметров и нажать OK, Windows создаст в одном каталоге с файлом сценария файл .wsh с именем, соответствующим имени сценария (т.е. .wsh). Это обычный текстовый файл, содержащий описание выбранных параметров, пример его содержимого показан на экране 2. Имеющийся в файле .wsh параметр BatchMode не может устанавливаться через графический интерфейс и соответствует параметру командной строки //B. Если его значение равно нулю (установка по умолчанию), то соответствующий сценарий будет запускаться в интерактивном режиме (//I); если же этот параметр установлен в единицу, тогда сценарий запустится в пакетном режиме (что соответствует параметру командной строки //B). Если нужно использовать эту установку, откройте файл .wsh в Блокноте (Notepad) или аналогичном текстовом редакторе и добавьте соответствующую настройку.
Использование файла .wsh - это единственный способ запуска сценария с предустановленными параметрами выполнения. При открытии файла .wsh соответствующий ему файл сценария запускается через сервер WScript. Довольно странно, что параметр командной строки //H не изменяет используемый по умолчанию сервер сценариев для файлов .wsh. Если нужно из графического интерфейса запустить на выполнение файл .wsh через сервер CScript, щелкните правой кнопкой мыши на имени соответствующего файла и выберите из контекстного меню пункт Open with Command Prompt («Открыть в командной строке»). После этого наберите в окне командной строки:
В файле .wsh содержится полное описание пути к соответствующему файлу сценария, поэтому если перенести файл .wsh в какое-либо другое место, то через него по-прежнему можно будет вызывать требуемый сценарий. Следует отметить, что создание файлов .wsh не является строго обязательным, поскольку для запуска сценариев на выполнение с необходимыми установками всегда можно воспользоваться соответствующими параметрами командной строки для CScript или WScript.
Расширения файлов WSH
В Таблице 2 приведен перечень стандартных расширений для файлов, используемых WSH. Автономные файлы сценариев имеют расширения .js или .vbs. Файлы, реализованные на языках, соответствующих каким-либо другим средам выполнения сценариев Active X, имеют собственные расширения (например, .pl для Perl и .py для Python). Автономные сценарии используются чаще всего, поскольку являются наиболее простыми для разработки.
Имеющие формат XML файлы .wsf обладают большей гибкостью по сравнению с автономными сценариями, поскольку могут содержать программный код, написанный на нескольких языках. Они имеют также ряд полезных свойств, таких как возможность включения в сценарий кода из других файлов формата XML, содержащих описания объектов сценариев и имеющих расширение .wsc. Сценарии .wsf и компоненты сценариев .wsc будут обсуждаться более подробно в следующих статьях данной серии.
Я надеюсь, что приведенные здесь сведения помогут внести ясность в понимание назначения компонента WSH и расширений для используемых им файлов. В следующей статье мы рассмотрим файлы .wsf и те дополнительные возможности, которые они предоставляют, по сравнению с автономными сценариями.
Таблица 1. Параметры командной строки для CScript и WScript
Читайте также: