2010-06-15 31 views
5

假設我有一個系統服務,並且我想提供對它的低級維護訪問權限。爲此,我想創建一個獨立的控制檯應用程序,它以某種方式連接到服務器進程,並允許用戶鍵入命令,允許它在單/雙TAB按下時使用自動完成和自動建議(就像linux的bash shell,mysql cli,cmd.exe和其他無數的程序一樣),允許命令行編輯功能(歷史記錄,光標鍵移動文本..)等。爲域特定的操作創建獨立的控制檯(shell)

現在,它不是一個很大的通過從頭開始自己創建,處理用戶輸入,掃描按下的按鍵以及執行正確的操作來創建類似的問題。但是,爲什麼重新發明輪子?是否有一些庫/框架可以幫助解決這類問題,就像readline庫在Linux下提供改進的命令行編輯功能一樣?

當然,這個新的「殼」將只響應有效的,特定領域的命令,並將提出有效的論據,選項,切換...

任何想法?謝謝!

回答

1

這聽起來像適合PowerShell。它是一個完全成熟的shell,您可以創建自定義shell,爲您的域特定命令(可以使用C#開發)託管一組管理單元,並且還允許遠程執行命令。

在缺點上,爲您的特定情況執行某些操作並不會自由,就像在一些小工作中一樣。許多MS服務器產品現在都有定製的PowerShell「殼」,例如,

兌換 - http://technet.microsoft.com/en-us/library/dd297939.aspx

更新

缺點是學習一個新的外殼,以及如何對其進行自定義,以及一個特別是面向對象的。兔子洞在這方面做得很深入,但手動滾動你自己的shell功能本身顯然是非常耗時的。

一些聯動:

書:Windows PowerShell in Action

一般:http://www.computerperformance.co.uk/powershell/index.htm

介紹自定義命令\跨度時間:http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

+0

你能告訴我在哪裏找的更多信息學科?另外,如果你不介意詳細闡述這個缺點 - 你的意思是說,如果我走下自己的路線,或者如果我嘗試使用PS來實現我想要的東西? – 2010-06-16 00:42:52

+0

@ mr.b不好意思,我的意思是說下面的問題會讓人接受整個PS的事情。 – 2010-06-16 01:02:58

+0

謝謝,你真的很有幫助! – 2010-06-16 01:13:13