2012-07-06 45 views
5

我有一堆F#腳本(fsx),用於我的基本部署需求。我只需右鍵單擊它們並說「使用F#交互式運行」如何在運行後保持fsi.exe打開

但是,有時腳本會失敗,我希望保持交互式控制檯運行。到目前爲止,我還沒有想出一個很好的方法來實現這一目標。

我試着手動啓動fsi.exe,但是我怎麼能從那裏啓動我的腳本?

回答

9

如果您足夠的黑客,您可能需要添加類似於Run with F# Interactive的另一個資源管理器上下文菜單項,但在.fsx腳本終止後保持控制檯窗口打開。下面是如何實現這一針對windows7/VS2012的工作大綱:

  • 都爲admin開放regedit並找到鑰匙HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell
  • 增加新的子項有一些獨特的名稱,如openRunCmd,使(Default)值這個關鍵不管你喜歡在上下文菜單中看到,也許Run with Fsi in shell
  • 最後,添加子項HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell\openRunCmd\command和這個子項下面的行設置(Default)值:

    c:\windows\system32\cmd.exe /Q /K %%USERPROFILE%%\fsx.bat "%1"

現在,接近regedit,去你的主目錄,並與下面的行創建有一個批處理文件fsx.bat

"C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe" --quiet --exec "%1" 

這些MODS後,你將能夠點擊任何.fsx用鼠標右鍵單擊腳本,選擇Run with Fsi in shell,並在腳本終止後保留shell窗口,直到關閉它。只需少量調整,相同的方法將適用於VS2010。

如果您的系統設置與上述不同,請注意調整細節。祝你好運!

更新:對於那些想在家中或在工作中嘗試此操作的人,我已發佈詳細的步驟here

+0

哇!這聽起來非常棒。將盡快嘗試(可能在星期一) – Christoph 2012-07-06 22:00:18

+0

我已經添加了一個鏈接到我的答案與詳細的演練。 – 2012-07-06 22:49:49

+0

感謝您爲此付出的努力。我會加倍upvote,如果我可以:) – Christoph 2012-07-07 20:24:44

3
#load "myScipt.fsx";; 

應該工作我認爲。但我自己我更喜歡只有單獨的控制檯窗口(cmd.exe),從中我可以運行fsi myScipt.fsx並查看輸出。

0

我創建了一個Windows快捷方式與

目標:

cmd /k "C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsi.exe" deploy.fsx 

開始在:

C:\FolderContaningFsxScript 

這樣可以使窗口打開,如果腳本失敗,這樣我就可以看到任何編譯錯誤。如果腳本運行成功,它也會保持窗口打開,這可能會或可能不合意。

我發現只需單擊快捷鍵而不是右鍵單擊>使用F#Interactive運行它更容易。我認爲使用上述命令的批處理文件也可以工作。

相關問題