我試圖通過在F#中編寫小控制檯腳本來實踐我的F#,而不是使用我通常的編寫shell腳本/批處理文件的方法。我目前使用「fsi script.fsx [args]」運行它們。有沒有一種方法可以將這些fsx文件與fsi關聯起來,以便我可以像「script.fsx [args]」一樣直接運行它們?執行F#腳本
執行F#腳本
回答
是有可能的關聯步行通過。
有兩個關鍵位置:
您需要綁定的應用程序來執行的「.fsx」擴展名。執行此操作的確切方法可能會在操作系統版本之間有所不同(我以前只通過直接編輯註冊表來完成此操作,所以我無法在此處提供通用解決方案);確保將要執行的命令不包括腳本參數(如
%*
),所以在註冊表中結合殼\開放\命令行應該如下"c:\Program Files\FSharp-1.9.9.9\bin\fsi.exe" "@%1" %*
見Gradbot的更多細節響應。
- 您可能希望將您希望觸發腳本執行的擴展名(本例中爲「.fsx」)添加到PATHEXT環境變量中,因此即使沒有指定腳本的擴展名,CMD.exe也可以找到該腳本。警告:如果您擔心繫統的安全性,請重新考慮這一步 - 事實上,VBScript已在默認的Windows XP和較早的系統上註冊以提供類似功能,這在過去已被病毒編寫者利用過(我不知道如果Vista或Windows 7仍然如此)。
您也可以在命令行(至少在我嘗試過的所有Windows版本中)使用「ftype」和「assoc」命令來完成#1。 – brianary
由於到目前爲止還沒有答案,我會嘗試將我早些時候的評論轉換成一個更詳細的答案。
我只是試圖創造* .fsx文件標準的Windows協會在fsi.exe自動打開他們,這沒有任何問題的工作 - 當您打開FSX文件,它運行F#互動並自動評估文件的內容。這對應於運行命令:
> fsi.exe test.fsx
但是,我認爲從Visual Studio使用F#Interactive學習F#要容易得多。即使您沒有許可證,您也可以使用Visual Studio Shell with the free F# plugin。我認爲SharpDevelop也提供了類似的整合(但可能沒有一些限制)。
最簡單的開始方法是創建一個新的「F#腳本」(文件 - >新建 - >文件...),然後開始編寫一些代碼(以各種順序)。然後,您可以選擇部分代碼並通過執行[Alt] + [Enter]
在F#交互式窗口中對其進行評估。您首先需要打開F#Interactive窗口,該窗口可以使用[Ctrl] + [Alt] + [F]
完成,或者您可以在視圖 - >其他窗口菜單項中找到它。
我認爲大多數F#網絡廣播以這種方式使用F#Interactive,所以如果你看看其中的一些,你應該明白如何使用它。以www.fsharp.net或F# videos at Channel 9的How Do I?視頻爲例。
我認爲他試圖取代批次文件與F#腳本(這是他問是否有辦法指向一個fsx文件)。感謝你的回答。 – Amir
Here's上設置在Windows 7
- 1. 在f#腳本中執行c#代碼有意外的行爲
- 2. 執行腳本
- 3. 執行腳本
- 4. 執行腳本
- 5. 執行腳本
- 6. 執行腳本
- 7. 執行腳本
- 8. F#腳本在執行後立即結束(FSI)
- 9. F#FAKE將不會執行powershell腳本文件
- 10. Autohotkey執行腳本
- 11. 執行python腳本
- 12. 腳本不執行
- 13. Lua腳本執行
- 14. 執行bash腳本
- 15. Rails執行腳本
- 16. 執行shell腳本
- 17. 執行bash腳本
- 18. 執行php腳本
- 19. 執行python腳本
- 20. 執行PowerShell腳本
- 21. 執行PHP腳本
- 22. 執行shell腳本
- 23. 執行[R腳本
- 24. F腳本類別
- 25. 執行n行shell腳本
- 26. 並行執行Selenium腳本
- 27. F#運行Powershell腳本作爲目標
- 28. 腳本執行腳本不執行權限
- 29. Cron執行一個執行python腳本的sh腳本
- 30. F#使用F#Interactive從另一個腳本啓動腳本
儘管編寫簡單的腳本文件並運行它們絕對是一種選擇,但我認爲如果從Visual Studio使用F#Interactive,學習F#會更容易。您可以先創建一個新的「F#腳本」(文件 - >新建 - >文件...),然後開始編寫一些代碼(以各種順序)。然後,您可以選擇部分代碼,並通過執行[Alt] + [Enter]在F#交互式窗口中對其進行評估。 –
@Tomas - 我認爲他的意思是說他寫作的腳本是寫實際代碼的練習,同時滿足他同時的需求(看起來他寫了很多腳本) –
Tomas:有一件事沒有從描述中不清楚:您仍然需要手動打開F#交互式窗口才能使Alt-Enter技巧工作。但是一個很好的技巧!謝謝! – itowlson