【问题标题】:Creating standalone, console (shell) for domain-specific operations为特定于域的操作创建独立的控制台(shell)
【发布时间】:2010-06-15 23:55:37
【问题描述】:

假设我有一个系统服务,我想提供对其的低级别维护访问权限。

为此,我想创建一个独立的控制台应用程序,以某种方式连接到服务器进程并让用户输入命令,允许它在单/双 TAB 按下时使用自动完成和自动建议(只需像 linux bash shell、mysql cli、cmd.exe 和无数其他),允许命令行编辑功能(历史记录、光标键在文本中移动..)等。

现在,通过从头开始创建类似的东西、处理用户输入、扫描按下的键并执行正确的操作来创建类似的东西并不是什么大问题。但是,为什么要重新发明轮子?是否有一些库/框架可以帮助解决这类问题,就像在 linux 下提供改进的命令行编辑功能的 readline 库?

当然,这个新的“shell”只会响应有效的、特定于域的命令,并会建议有效的参数、选项、开关......

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# .net shell console-application


    【解决方案1】:

    这听起来很适合 PowerShell。它是一个成熟的 shell,您可以创建自定义 shell,为您的域特定命令(可以用 C# 开发)托管一组管理单元,它还允许远程执行命令。

    不利的一面是,为您的特定案例实施某些东西并不是免费的,因为工作量很小。

    许多 MS 服务器产品现在都有自定义 PowerShell “Shell”,例如

    交换 - http://technet.microsoft.com/en-us/library/dd297939.aspx

    更新

    缺点是学习一个新的 shell 以及如何定制它,尤其是面向对象的。兔子洞在这方面很深,但手动滚动您自己的 shell 功能本身显然非常耗时。

    一些联系:

    本书:Windows PowerShell in Action

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

    介绍自定义命令\span-in:http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

    【讨论】:

    • 您能告诉我在哪里可以找到有关该主题的更多信息吗?另外,如果你不介意稍微详细说明一下这个缺点 - 你的意思是如果我走自己的路线,或者如果我尝试使用 PS 实现我想要的?
    • @mr.b 抱歉,是的,我的意思是不利的一面是要掌握整个 PS。
    • 谢谢,你真的很有帮助!
    • PowerShell 也已集成到 Visual Studio 中:visualstudiogallery.msdn.microsoft.com/en-us/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2021-02-15
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多