Выполнение сценарии F#

Я пытаюсь практиковать свой F# путем писания мелко консольных сценариев в F# вместо моего обычного метода записи сценариев/пакетных файлов оболочки. Я в настоящее время выполняю их использующий "fsi script.fsx [args]". Существует ли способ, которым я могу связать эти fsx файлы с fsi так, чтобы я мог выполнить их непосредственно как "script.fsx [args]"?

12
задан Ying 17 March 2010 в 02:02
поделиться

3 ответа

Да, это возможно.

Здесь есть два ключа:

  1. Вам необходимо привязать приложение для выполнения к расширению «.fsx». Точный способ сделать это может немного отличаться в зависимости от версии операционной системы (в прошлом я делал это только путем непосредственного редактирования реестра, поэтому я не могу предоставить здесь универсальное решение); убедитесь, что выполняемая команда включает аргументы сценария (как % * ), поэтому запись shell \ open \ command в реестре для привязки должна иметь вид

    "c: \ Program Files \ FSharp-1.9.9.9 \ bin \ fsi.exe "" @% 1 "% *

    Подробнее см. Ответ Gradbot.

  2. Вы можете добавить расширение, которое будет запускать выполнение сценария (в данном случае ".fsx"), в переменную среды PATHEXT, чтобы CMD.exe мог найти сценарий даже без указания расширения сценария. Предупреждение: если вас беспокоит безопасность вашей системы, пересмотрите этот шаг - тот факт, что VBScripts зарегистрированы в Windows XP и более старых системах по умолчанию для обеспечения аналогичной функции, в прошлом использовался вирусописателями (я не знаю если это все еще верно в Vista или Windows 7).
9
ответ дан 2 December 2019 в 21:02
поделиться

Поскольку пока нет ответов, я попытаюсь превратить свой предыдущий комментарий в ответ с некоторыми подробностями.

Я просто попытался создать стандартную ассоциацию Windows для файлов *. Fsx , чтобы автоматически открывать их в fsi.exe , и это работает без проблем - когда вы открываете ] fsx , он запускает F # Interactive и автоматически оценивает содержимое файла. Это соответствует запуску команды:

> fsi.exe test.fsx

Однако я думаю, что гораздо проще изучить F #, используя F # Interactive из Visual Studio. Даже если у вас нет лицензии, вы можете использовать Visual Studio Shell с бесплатным подключаемым модулем F # . Я думаю, что SharpDevelop также обеспечивает аналогичную интеграцию (но, вероятно, без каких-либо ограничений).

Самый простой способ начать - создать новый «F # Script» ( Файл -> Новый -> Файл ... ), а затем начать писать некоторый код (в отсортированном порядке).Затем вы можете выбрать часть кода и оценить ее в окне F # Interactive, нажав [Alt] + [Enter] . Сначала вам нужно открыть окно F # Interactive, что можно сделать с помощью [Ctrl] + [Alt] + [F] или найти его в View -> Other Windows пункт меню.

Я думаю, что большинство веб-трансляций F # используют F # Interactive именно таким образом, поэтому, если вы посмотрите на некоторые из них, вы должны получить хорошее представление о том, как его использовать. Посмотрите, например, видео Как мне? на www.fsharp.net или видео F # на канале 9 .

4
ответ дан 2 December 2019 в 21:02
поделиться

Вот инструкция по установке ассоциации в windows 7.

1
ответ дан 2 December 2019 в 21:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: