2012-07-06 28 views
5

Tôi có một loạt các tập lệnh F # (fsx) mà tôi sử dụng cho các nhu cầu triển khai cơ bản của mình. Tôi chỉ cần nhấp chuột phải vào chúng và nói "Chạy với F # tương tác"Cách giữ fsi.exe mở sau khi chạy

Tuy nhiên, đôi khi tập lệnh không thành công và tôi muốn giữ bảng điều khiển tương tác chạy. Cho đến nay tôi đã không tìm ra một cách tốt đẹp để đạt được điều đó.

Tôi đã thử khởi động fsi.exe theo cách thủ công nhưng sau đó làm cách nào để khởi chạy tập lệnh của tôi từ đó?

Trả lời

9

Nếu bạn đủ mạnh, bạn có thể muốn thêm một mục menu ngữ cảnh Explorer khác tương tự như Run with F# Interactive, nhưng giữ cửa sổ bảng điều khiển mở sau khi .fsx tập lệnh chấm dứt. Đây là đề cương làm việc như thế nào để đạt được điều này cho Windows7/VS2012:

  • là quản trị mở regedit và tìm chìa khóa HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell
  • thêm khóa mới với một số tên duy nhất, như openRunCmd, hãy (Default) giá trị cho khóa này bất cứ điều gì bạn muốn thấy trong menu ngữ cảnh, có lẽ Run with Fsi in shell
  • cuối cùng, thêm khóa HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell\openRunCmd\command và thiết lập giá trị cho khóa (Default) này để dòng sau:

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

Bây giờ, gần regedit, đi đến thư mục home của bạn và tạo có một tập tin batch fsx.bat với dòng sau:

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

Sau các mods bạn sẽ có thể nhấp vào bất kỳ .fsx kịch bản với nút chuột phải, chọn Run with Fsi in shell và có cửa sổ trình bao ở sau khi chấm dứt tập lệnh cho đến khi bạn đóng tập lệnh. Với một vài điều chỉnh nhỏ, cách tiếp cận tương tự sẽ làm việc cho VS2010.

Chỉ cần cẩn thận để điều chỉnh chi tiết, nếu cài đặt hệ thống của bạn khác với các cài đặt trên. Chúc may mắn!

Cập nhật: Dành cho những ai muốn thử công việc này tại nhà hoặc tại nơi làm việc, tôi đã đăng chi tiết đi bộ here.

+0

Wow! Điều này nghe hoàn toàn tuyệt vời. Sẽ phải thử nó càng sớm càng tốt (có thể vào thứ hai) – Christoph

+0

Tôi đã thêm một liên kết đến câu trả lời của tôi với một bước đi chi tiết. –

+0

Cảm ơn sự nỗ lực của bạn mà bạn đã đưa vào điều này. Tôi sẽ tăng gấp đôi upvote nếu tôi có thể :) – Christoph

3
#load "myScipt.fsx";; 

nên hoạt động. Nhưng bản thân tôi thích chỉ để có cửa sổ giao diện điều khiển riêng biệt (cmd.exe), từ đó tôi có thể chạy fsi myScipt.fsx và xem kết quả đầu ra.

0

tôi đã tạo ra một cửa sổ tắt với

Target:

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

Start trong:

C:\FolderContaningFsxScript 

Điều này sẽ giúp các cửa sổ đang mở nếu kịch bản không để tôi có thể nhìn thấy bất kỳ lỗi biên dịch . Nó cũng giữ cho cửa sổ mở nếu kịch bản chạy thành công mà có thể hoặc có thể không được mong muốn.

Tôi thấy dễ dàng hơn khi chỉ cần nhấp vào phím tắt thay vì Nhấp chuột phải> Chạy với F # Tương tác. Tôi nghĩ rằng một tập tin thực thi với lệnh trên sẽ hoạt động tốt.

Các vấn đề liên quan