Julia's Fairies

Batch scripts to run popeye (RU)


В разделе popeye я писала в общем о программе, ее преимуществах и недостатках. А теперь – о некоторых практических вещах по работе с popeye. На этой странице я хочу показать 2-ой метод (из 2-х методов, которые упоминала в основном разделе) работы с popeye

Работа с Popeye с использованием batch-скриптов

Batch-cкрипт – это набор команд, которые выполняются последовательно одна за другой, помещенный в один файл, который называется каммандный файл. Вы можете использовать текстовый редактор типа Notepad для создания командного файла, но сохранить его надо с типом “Все файлы” и с любым именем, но обязательным расширением .bat

Сейчас я покажу 3 примера скриптов. Вы можете скачать и использовать любой из них. Коротко обо всех:

  • Пример 1 запускает popeye циклически: открывает командное окно (cmd-окно), запускает popeye, ждет задачу на вход для решения, решает, показывает результат на экране, спрашивает, хотите ли решать следующую, запускается снова, решает… итд. Преимущества этого метода в том, что popeye-окно не закрывается после окончания решения, а также Вы можете использовать опцию [PASTE]- подставить скопированное (нажать правую кнопку мышки – появится меню, в котором есть этот вариант) для ввода Вашей нотации из другого файла.
  • Пример 2 делает почти то же, что и Пример 1, но он не показывает результаты на экране, а записывает их в текстовый файл. По окончании процесса решения Вы можете открыть этот файл любым текстовым редактором (например – Notepad) и увидеть Ваше решение. Дополнительное преимущество здесь в том, что Вы не потеряете часть решения в случае, если оно слишком длинное для cmd-окна. Также, текстовый файл более удобен для редактирования и копировани решения.
  • Пример 3 – комбинация Примеров 1 и 2. Он выдает решение на экран и параллельно пишет в файл. По окончании решения скрипт запускает текстовый редактор Notepad, который покажет Ваше решение в режиме редактирования. В случае, если Вы остановите процесс решения раньше, чем он завершился, – часть решения, которая уже найдена, будет показана редактором Notepad. Но, чтобы это работало, Вам нужно скачать еще одну маленькую программку дополнительно (я ее выкладываю для копирования в части Пример 3)

Важный момент!! – в примерах я предполагаю, что Ваш выполняемый файл для работы с popeye называется py.exe и находится в директории C:\PY-459\ !!! Вы можете использовать свою директорию и свое имя программы (например, pywin64 или pywin32). Поменяйте все имена, написанные красным, на те, которые используете Вы!! Как, например, Вы можете использовать файл pywin64.exe для запуска popeye, или директорию вида C:\Program Files\Popeye\

Example 1

Скопируйте файл со скриптом в виде zip-архива – py-script1.zip, распакуйте из архива файл py-script.bat на свой десктоп. Для распаковки архива нажмите на него правой кнопкой мышки – получите меню вида:

Выберите второй вариант – Extract files… с помощью левой кнопки мышки. Вам будет нужно указать директорию, куда распаковывать. Используйте Desktop, как на картинке внизу, и нажмите OK.

Теперь у Вас на десктопе есть файл со скриптом с именем py-script, как на моем примере:

Вам не нужно делать никаких изменений со скриптом, если Вы используете для popeye директорию C:\PY-459 и имя Вашей программы для запуска popeye py.exe. Если же нет – то Вам нужно редактировать скрипт. Для этого нажмите иконку py-script1 правой кнопкой мышки. Вы увидете меню, в котором надо выбрать второй вариант – EDIT:

Левой кнопкой мышки выберите EDIT. Откроется текстовый редактор Notepad со следующими командами внутри:

Вот команды, которые показывает Ваш Notepad:

@echo off

cd C:\PY-459

:label_start

py

set /p end=Press ENTER to continue!

if “%end%”==”” (goto label_start) else (goto :eof)

Пожалуйста, отредактируйте файл в Notepad, заменяя директорию C:\PY-459 на ту, которую используете Вы для popeye и поменяйте имя запускаемой программы с py на pywin32 или pywin64 или какое-то еще имя, которое используете Вы. После редактирования используйте меню File – вариант SAVE. И закройте Notepad. Теперь Вы можете просто запускать скрипт!! Используйте двойное нажатие на иконку скрипта левой кнопкой мышки, как в случае с любой другой программой. Вы увидете экранчик popeye и программу, ожидающую ввода данных (как обычно).

Здесь Вы можете ввести свою нотацию для решения. Первый выриант – набирать нотацию вручную, как на примере:

по окончании ввода нотации нажмите клавишу ввода – [ENTER]. Вы получите подобный результат:

Ваше решение – на экране, а скрипт ждет Вашего следующего действия. Вы видете фразу: Press ENTER to continue! Если Вы нажмете клавишу ввода – ENTER – программа запускается снова и ждет Вашей следующей нотации для решения:

Теперь рассмотрим второй способ ввода нотации – копирование ее из другого источника (файла, письма…). Например, в каком-то файле у меня есть такая нотация для задачи:

BeginProblem

Stipulation h#2

Pieces White Kh4 Rf5 Rg4 Bh2 Bh1

Black Kb6 Qa4 Ra2 Bd7 Sf4

EndProblem

Я могу сделать копию всей нотации – COPY (ctrl_c) всех строчек и подставить скопированное – PASTE – в окно с popeye. Для PASTE в окне popeye нажмите правую кнопку мышки и выберите вариант PASTE из полученного меню:

В случае с моей нотацией, показанной ранее, получилось так:

Теперь нажмите клавишу [ENTER] – и программа начнет решать. Полученный результат решения выглядит так:

В конце решения скрипт снова спрашивает, хотите ли продолжить работу: Press ENTER to continue! Если Вы нажмете клавишу [ENTER] – программа запускается снова и ждет следующую задачу. Иначе, для завершения работы и выхода, Вы можете нажать любой символ на клавиатуре и [ENTER] после:

В примере наверху я использую букву “n” . Окошко закроется, как только Вы нажмете теперь [ENTER]. Другой вариант выхода – закрыть окно стандартным способом, нажав крести [x] в правом верхнем углу:


Пример 2

Другой пример – на сохранение результатов решения в файле. Скачайте скрипт в zip-архиве py-script2. Раскройте архив и положите файл py-script на Ваш десктоп также, как делали в Примере 1. Вы можете сразу запускать этот скрипт, если Ваша программа popeye находится в директории C:\PY-459 и выполняемый файл называется py.exe. Иначе Вам нужно редактировать файл, как описано в Примере 1 и поменять изменить слова, которые здесь показаны красным:

cd C:\PY-459

:label_start

echo Running popeye… input your problem here!

py > my-result.txt start

Notepad my-result.txt

set /p end=Press ENTER to continue!

if “%end%”==”” (goto label_start) else (goto :eof)

Поменяйте окрашенные красным имена на те, которые используете Вы, если popeye у Вас находится в другой директории (не в C:\PY-459) и если отличается имя запускаемого файла (не py.exe). my-result.txt – это имя файла, в котором будут сохранены Ваши результаты. Вы можете поменять его на любое другое, но с расширением .txt. Сохраните файл после редактирования. Теперь Вы можете запускать скрипт py-script2 со своего Десктопа. Как обычно, откроется окно, запуститься popeye и будет ожидать Вашего ввода данных для решения. Введите задачу вручную или используя опцию PASTE (подставить скопированное), как показано в Примере 1. Но в этот раз Вы не увидете на экране результаты работы popeye, а по окончании решения запустится текстовый редактор Notepad и покажет файл my-result.txt, где будет Ваше решение.


Пример 3

И более сложный пример (скрипт, который я чаще использую сама): Для использования этого скрипта Вам нужно дополнительно скачать маленькую утилитку(программку) – mtee. Нажмите на mtee.zip для скачивания. Распакуйте архив с mtee в ту же директорию, где у Вас программа popeye. Потом скачайте архив со скриптом – py-script.zip. Распакуйте архив – положите файл со скриптом на свой десктоп, как показано в Примере 1. Теперь у Вас на Десктопе есть иконка с именем py-script. Вам нужно отредактировать этот файл в случае, если Ваши параметры отличаются от используемых в скрипте. Файл при редактировании выглядит так:

@echo off

echo Enjoy scripting language to run POPEYE!

set my-directory=”C:\PY-459

set my-popeye=”py

set my-result=”r.txt

cd %my-directory% :label_start

echo —————————————

echo. set end=

echo *** running %my-popeye% ***

%my-popeye% | mtee %my-result%

start Notepad %my-result%

set /p end=Press ENTER to continue!

if “%end%”==”” (goto label_start) else (goto :eof)

Пожалуйста, отредактируйте файл, как показано в Примере 1, заменив красные имена, в случае: вместо C:\PY-459 впишите свою директорию для программы popeye, вместо py впишите имя для popeye-программы, которое Вы используете (pywin64, pywin32, …), вместо r.txt Вы можете использовать любое имя файла для результатов, но с расширением .txt extension. Сохраните файл после редактирования. Теперь Вы можете запускать скрипт!! Как он будет работать?

  1. запускаете скрипт с десктопа
  2. программа popeye запустится и будет ждать Вашего ввода данных
  3. Вы можете ввести Вашу задачу вручную или сделать copy-paste – скопировать нотацию из файла, где она у Вас подготовлена, и подставить скопированное в окно popeye
  4. popeye будет выводить Вам решение на экран (как обычно), но одновременно будет писать решение и в заданный файл (у меня – r.txt)
  5. по окончании решения запускается текстовый редактор Notepad и показывает Ваше решение, записанное в файле
  6. а окно скрипта для popeye в это время ожидает следующей задачи – нажмите только клавишу ENTER для продолжения, и скрипт снова запускает программу решения…

Еще одно дополнение: в случае длинных решений, или большого количества побочных решений, Вы можете нажать CTRL-C для остановки процесса решения. Та часть решения, которую успели получить, тоже будет записана в файл. Процесс решения текущей задачи остановится, но Вы можете продолжать работу со следующей задачей (или версией данной задачи) – окно скрипта для popeye не закроется. Конечно, эти скрипты – только примеры – с ними возможно сделать много различных модификаций. Я просто тут показываю саму идею – что возможно сделать!


Буду рада Вашим вопросам и комментариям (на английском, русском, латышском)! Пожалуйста, пишите также, какие варианты скриптов были бы полезны – я могла бы добавить больше примеров для копирования. Используйте форму внизу – Добавить Комментарий или пишите мне на адрес julia@juliasfairies.com.

Успехов в использовании скриптов! Юля

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x