Как добавить скрипт в программу

Содержание

В этой статье описано как создавать, редактировать, выполнять и сохранять скрипты в области скриптов.

Создание и выполнение сценариев

В области скриптов можно открывать и редактировать файлы Windows PowerShell. Сейчас нас интересуют следующие типы файлов Windows PowerShell: файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ). Эти типы файлов имеют цветовую подсветку синтаксиса в редакторе области сценариев. Другие стандартные файлы, которые можно открыть в области сценариев, — это файлы конфигурации ( .ps1xml ), XML-файлы и текстовые файлы.

Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing.

Создание файла сценария

Нажмите кнопку Создать на панели инструментов или откройте меню Файл и выберите Создать. Созданный файл появится на вкладке «Новый файл» под текущей вкладкой PowerShell. Помните, что вкладки PowerShell отображаются, только если их несколько. По умолчанию создается файл сценария ( .ps1 ), но его можно сохранить с новым именем и расширением. На одной вкладке PowerShell может быть создано несколько файлов сценариев.

Нейросеть пишет скрипты для роблокса #shorts

Открытие существующего сценария

Нажмите кнопку Открыть. на панели инструментов или откройте меню Файл и выберите пункт Открыть. В диалоговом окне Открыть выберите файл, который требуется открыть. Открытый файл появится в новой вкладке.

Закрытие вкладки сценария

На вкладке файла, которую нужно закрыть, щелкните значок закрытия (X) или откройте меню File (Файл) и выберите Close (Закрыть).

Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения.

Отображение пути к файлу

На вкладке файла наведите курсор на его имя. Появится подсказка с полным путем к файлу сценария.

Запуск сценария

Нажмите кнопку Выполнить сценарий на панели инструментов или откройте меню Файл и выберите пункт Выполнить.

Выполнение части сценария

  1. Выберите часть сценария в области сценариев.
  2. Нажмите кнопку Выполнить выделенный фрагмент на панели инструментов или откройте меню Файл и выберите пункт Выполнить выделенный фрагмент.

Остановка выполняемого сценария

Есть несколько способов остановить выполняемый скрипт.

  • На панели инструментов щелкните Остановить операцию.
  • Нажмите CTRL + BREAK .
  • В меню Файл выберите Остановить операцию.

Нажатие клавиш CTRL + C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL + C приведет к копированию выделенного текста.

Написание и редактирование текста в области сценариев

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

Как создавать скрипты в Windows | удобный конструктор с графическим интерфейсом

Ввод текста в области сценариев

  1. Установите курсор в область сценариев, щелкнув кнопкой мыши любую ее часть или выбрав пункт Перейти в область сценариев в меню Вид.
  2. Создайте сценарий. Цветовая подсветка синтаксиса и заполнение нажатием клавиши TAB обеспечивают более широкие возможности для редактирования в интегрированной среде скриптов Windows PowerShell.
  3. Подробную информацию о заполнении нажатием клавиши TAB, помогающем при вводе кода, см. в статье How to Use Tab Completion in the Script Pane and Console Pane (Использование заполнения нажатием клавиши TAB в областях сценариев и консоли).

Поиск текста в области сценариев

  1. Чтобы найти текст в любой части скрипта, нажмите клавиши CTRL + F или выберите Find in Script (Найти в сценарии) в меню Edit (Правка).
  2. Чтобы найти текст после курсора, нажмите клавишу F3 или выберите Найти следующее в сценарии в меню Правка.
  3. Чтобы найти текст до курсора, нажмите клавиши SHIFT + F3 или выберите Find Previous in Script (Найти предыдущее в сценарии) в меню Edit (Правка).
Читайте также:
Не одна программа не видит iPhone

Поиск и замена текста в области сценариев

Нажмите клавиши CRTL + H или в меню Edit (Правка) выберите Replace in Script (Заменить в сценарии). Введите текст, который нужно найти, и замещающий текст, затем нажмите клавишу ВВОД .

Переход к определенной строке текста в области сценариев

  1. В области сценариев нажмите клавиши CTRL + G или выберите Go to Line (Перейти к строке) в меню Edit (Правка).
  2. Введите номер строки.

Копирование текста в области сценариев

  1. В области сценариев выделите текст, который требуется скопировать.
  2. Нажмите клавиши CTRL + C , щелкните значок Copy (Копировать) на панели инструментов или выберите Copy (Копировать) в меню Edit (Правка).

Вырезание текста в области сценариев

  1. В области сценариев выделите текст, который требуется вырезать.
  2. Нажмите клавиши CTRL + X , щелкните значок Cut (Вырезать) на панели инструментов или выберите Cut (Вырезать) в меню Edit (Правка).

Вставка текста в области сценариев

Нажмите клавиши CTRL + V , щелкните значок Paste (Вставить) на панели инструментов или выберите Paste (Вставить) в меню Edit (Правка).

Отмена действия в области сценариев

Нажмите клавиши CTRL + Z , щелкните значок Undo на панели инструментов или выберите Отменить в меню Правка.

Повторное выполнение действия в области сценариев

Нажмите клавиши CTRL + Y , щелкните значок Повторить на панели инструментов или выберите Повторить в меню Правка.

Сохранение сценария

Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. После сохранения звездочка исчезает.

Сохранение сценария

Нажмите клавиши CTRL + S , щелкните значок Сохранить на панели инструментов или выберите Сохранить в меню Файл.

Сохранение сценария с определенным именем

  1. В меню Файл выберите пункт Сохранить как. Появится диалоговое окно Сохранить как.
  2. В поле Имя файла введите имя файла.
  3. В поле Тип файла выберите тип файла. Например, в поле Тип сохраняемого файла выберите «Скрипты PowerShell ( *.ps1 )».
  4. Нажмите Сохранить.

Сохранение сценария в кодировке ASCII

По умолчанию интегрированная среда сценариев Windows PowerShell сохраняет новые файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ) в кодировке Юникод (BigEndianUnicode). Чтобы сохранить сценарий в другой кодировке, например ASCII (ANSI), используйте методы Save или SaveAs объекта $psISE.CurrentFile.

Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1:

$psISE.CurrentFile.SaveAs(«MyScript.ps1», [System.Text.Encoding]::ASCII)

Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII:

$psISE.CurrentFile.Save([System.Text.Encoding]::ASCII)

Следующая команда возвращает кодировку текущего файла:

$psISE.CurrentFile.encoding

Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Значение параметра Default зависит от системы.

Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд «Сохранить» или «Сохранить как».

См. также:

Источник: learn.microsoft.com

Добавление скриптинга в программу с помощью Lua

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

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

Примеров программ, которые используют Lua достаточно много. Далеко не полный список программ, использующих Lua, можно посмотреть здесь Lua Wiki и здесь Wikipedia

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

Пример я создавал в Visual Studio под Windows. Несмотря на это, приведенный код, за исключением нескольких функций (перечисление файлов, переименование файла), специфичных для Windows, после небольшой адаптации будет работать и на других платформах, т.к. Lua является кроссплатформенным языком сценариев.

Читайте также:
Инструкция работы в программе дело

Начнем с того, что посетим официальный сайт и скачаем Lua для своей платформы. Для Windows подойдет вот этот архив, включающий в себя библиотеки линковщика, динамические библиотеки и заголовочные файлы Lua.

Распаковываем, указываем в настройках Visual Studio пути к заголовочным файлам и библиотекам линковщика (Tools -> Options -> Projects and Solutions -> VC++ Directories).

  • Добавление в проект заголовочных файлов и библиотеки компоновщика
  • Инициализация виртуальной машины Lua
  • Реализация и регистрация экспортируемых функций

extern «C»
#include
#include
#include
>

Почему extern «C»? Lua написан на ANSI C, если попытаться включить файлы без extern «C» то мы получим множество ошибок, таких как:

Это вызвано тем, что соглашения о вызовах в C отличаются от соглашений в C++.

Не забудем подключить библиотеку линковщика:

#pragma comment (lib, «lua51.lib»)

Теперь необходимо объявить и инициализировать экземпляр Lua интерпретатора.

int _tmain( int argc, _TCHAR* argv[])
// Инициализируем экземпляр
g_LuaVM = lua_open();
.
// Закрываем
lua_close(g_LuaVM);
>

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

int LuaMatchString(lua_State *luaVM)

Вторая — переименовывает файл:

int LuaRenameFile(lua_State *luaVM)

Остановимся подробнее на реализации второй:

// В качестве параметров принимает текущий путь к файлу и новое имя файла
// В случае успеха возвращает 1, иначе 0
int LuaRenameFile(lua_State *luaVM)
// Получаем число переданных из Lua скрипта аргументов
int argc = lua_gettop(luaVM);

// Если аргументов меньше двух — возвращаем ошибку
if (argc < 2)
cerr // Вернем 0 в Lua скрипт
lua_pushnumber(luaVM, 0);

// Количество возвращаемых значений
return 1;
>

// Проверяем типы аргументов, если это не строки
// возвращаем 0 (признак ошибки)
if (!lua_isstring(luaVM, 1) || !lua_isstring(luaVM, 2))
cout lua_pushnumber(luaVM, 0);

// Количество возвращаемых значений
return 1;
>

// Получаем значение первого аргумента, путь к файлу
// Обратите внимание — индекс первого элемента — 1, а не 0, как принято в С++
string strSource = lua_tostring(luaVM, 1);
// Получаем значение второго аргумента, новое имя файла
string strDestination = lua_tostring(luaVM, 2);

strDestination = strSource.substr(0, strSource.rfind(‘\’) + 1) + strDestination;

int nResult = ( int )::MoveFileEx(strSource.c_str(), strDestination.c_str(), MOVEFILE_REPLACE_EXISTING|MOVEFILE_WRITE_THROUGH);

// Возвращаем в Lua скрипт результат выполнения MoveFileEx
lua_pushnumber(luaVM, nResult);

// Количество возвращаемых значений
return 1;
>

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

Теперь нам необходимо дать Lua знать, о экспортируемых функциях, делается это просто:

lua_register(g_LuaVM, «RenameFile», LuaRenameFile);
lua_register(g_LuaVM, «MatchString», LuaMatchString);

RenameFile и MatchString это имена функций, которые будут «видны» в скрипте.

Создадим скрипт, выполняющий всю работу:

— Вызывается для обработки имени файла
— В качестве параметра передается полный путь к файлу
— и да, — это комментарии в Lua
function onFileFound(fileName)
patt = MatchString(‘103([0-9]).txt’, fileName)

— Если совпадение найдено patt будет содержать
— найденно совпадение — ([0-9])
— иначе nil
if patt ~= nil then
— Переименовываем файл, заменяя 103 на XXX
— Пример: было 103180998.txt, станет XXX180858.txt
RenameFile(fileName, ‘XXX’ .. patt .. ‘.txt’)
end
end

Чтобы совсем стало понятно, привожу кусок кода, который вызывает эту функцию

// Переместить на начало стека функцию onFileFound
lua_getglobal(g_LuaVM, «onFileFound»);
// Поместить следующим элементом в стек путь к найденному файлу (fileName в скрипте)
lua_pushstring(g_LuaVM, strFilePath.c_str());

// Вызвать функцию onFileFound
if (lua_pcall(g_LuaVM, 1, 0, 0) != 0)
// Проверить возвращенное значение,
// если это не 0, сообщить об ошибке
// lua_tostring(g_LuaVM, -1) содержит описание ошибки
cerr >

Осталось только загрузить скрипт из нашей программы:

BOOL LoadScript()
// Получение полного пути к скрипту
CHAR szScriptPath[1024] = ;
GetModuleFileName(NULL, szScriptPath, _countof(szScriptPath) — 1);
TCHAR *szSlashPos = strrchr(szScriptPath, ‘\’);
if (szSlashPos != NULL)
szScriptPath[szSlashPos — szScriptPath + 1] = ‘’;
>
strcat_s(szScriptPath, _countof(szScriptPath), _T(«script.lua»));

// Загружаем скрипт
int s = luaL_loadfile(g_LuaVM, szScriptPath);

// Если результат загрузки не 0 — произошла ошибка
// lua_tostring(g_LuaVM, -1) содержит описание ошибки
if (s != 0)
cout

// Выполняем крипт
s = lua_pcall(g_LuaVM, 0, LUA_MULTRET, 0);

Как видно встраивание Lua скриптинга в программу является, по сути, тривиальной задачей и вместе с тем дает широкое поле для творчества.

Читайте также:
Какой стиль плавания вошел в олимпийскую программу позже

Ниже приведен список ресурсов, на которых можно почитать о Lua более подробно.

Источник: habr.com

Запуск в Windows скриптов на языке JScript

В одном из предыдущих постов я разбирал, как написать и локально запустить простейший веб-сервер в среде выполнения «Node.js»:

В том посте я создал скрипт на языке JavaScript и сохранил его в текстовом файле index.js (в кодировке UTF-8). Вообще, у меня на компьютере установлена операционная система «Windows 10 Pro».

Вскоре после этого я заметил, что в программе «проводник Windows» у этого файла отображается какая-то неизвестная мне иконка:

Эту же иконку можно увидеть в англоязычной статье википедии, посвященной языку программирования JScript (в русскоязычном варианте статьи этой иконки нет):

Язык программирования JScript, как и язык JavaScript, является реализацией стандарта «ECMA-262». Если язык JavaScript изначально был детищем компании «Netscape» и появился в 1995 году, то язык JScript был детищем компании «Microsoft» и появился в 1996 году как ответ на появление JavaScript. Это происходило в рамках первой войны браузеров. Даже сам стандарт «ECMA-262» в то время не существовал и начал разрабатываться в 1996 году, чтобы как-то удержать разработку конкурирующих языков в одном русле.

В результате первых браузерных войн компания «Netscape» проиграла компании «Microsoft», но дело компании «Netscape» подхватили сторонники программ с открытым исходным кодом. В том числе это касается и развития языка JavaScript.

В итоге язык JavaScript продолжает развиваться до сих пор, он следует за развитием стандарта «ECMA-262» и реализует самые свежие версии этого стандарта. Язык JavaScript стал одним из самых популярных языков программирования (а, возможно, и самым популярным) на сегодня. В то время как компания «Microsoft», как я понимаю, забросила развитие языка JScript (а также языка «JScript .NET») примерно в 2011 году.

Язык JavaScript раньше использовался в программировании только со стороны клиента (браузера). И только в 2009 году, с появлением среды выполнения «Node.js», этот язык программирования стал использоваться и в программировании со стороны сервера. Язык JScript, как оказалось, задолго до этого мог (и сейчас может) использоваться для написания сценариев в операционных системах «Windows» (то есть это одна из альтернатив пакетным файлам с расширением «.bat»).

Именно поэтому к файлам с расширением «.js» в моей операционной системе «Windows 10 Pro» привязана вышеприведенная иконка. Операционная система «Windows 10 Pro» по умолчанию считает эти файлы скриптами на языке JScript. Такие файлы можно запустить на выполнение двойным щелчком мыши по их названию. По умолчанию при этом запустится программа «Сервер сценариев Windows» (по-английски «Windows Script Host» или сокращенно «WSH»), которая возьмет текстовый файл со скриптом (сценарием) в обработку, интерпретирует программу и запустит ее.

Я попробовал запустить мой вышеупомянутый файл index.js двойным щелчком мыши по его имени в программе «Проводник Windows». Получил ошибку:

Программа «Windows Script Host» споткнулась на первой же строке скрипта, потому что он писался не как программа на языке JScript для выполнения каких-то действий в операционной системе, а как программа на языке JavaScript для работы в среде выполнения «Node.js».

Ради интереса я нашел в интернете небольшую программу на языке JScript, которая просто открывает окно с текстовым сообщением «Моя первая программа на JScript», и поместил эту программу в файл index.js вместо программы простейшего веб-сервера для работы в среде выполнения «Node.js». Вот текст этой программы:

// встроенный объект var WshShell = WScript.CreateObject(«WScript.Shell»); // выводим сообщение WshShell.Popup(«Моя первая программа на JScript»); // завершаем работу с объектом WScript.Quit();

После этого я снова запустил файл index.js на исполнение и в этот раз ошибки не произошло. Программа выполнилась:

Единственное, что здесь не так: русские буквы вывелись кракозябрами. Как я понимаю, программа «Windows Script Host» по умолчанию не умеет работать с кодировкой UTF-8 (я выше упоминал, что текстовый файл index.js хранится в кодировке UTF-8).

Я преобразовал файл в кодировку ANSI (в данном случае — в кодировку Windows-1251), в моем текстовом редакторе «Notepad++» это несложно сделать. После этого я снова запустил файл index.js на выполнение и всё получилось:

В общем-то, я не собираюсь пока пользоваться скриптами на языке JScript на моем компьютере.

Источник: ilyachalov.livejournal.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru