Как переопределить скрипт

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

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

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

  • Откройте скрипт Записать в консоль в редакторе;
  • Перейдите в закладку Настройки и добавьте к имени скрипта суффикс .override (write-console.override);
  • Измените скрипт. В данном случае, в закладке Исходный код можно указать
1Println( Upper(text ))
  • Нажмите на кнопку Сохранить как, чтобы сохранить изменённый скрипт.

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

Если нужно отключить переопределение скрипта, то достаточно удалить изменённый скрипт или убрать из его имени суффикс .override.

Онлайн-демо
Скачать Документация Скрипты Поддержка
Русский
English