2010-06-15 17 views
5

Angenommen, ich habe einen Systemdienst, und ich möchte einen Wartungszugriff auf niedriger Ebene anbieten.Erstellen einer eigenständigen Konsole (Shell) für domänenspezifische Vorgänge

Zu diesem Zweck möchte ich eine eigenständige Konsolenanwendung erstellen, die irgendwie mit dem Serverprozess verbunden ist und Benutzer Befehle eingibt, die automatische Vervollständigung und automatische Vorschläge bei einfacher/doppelter TAB-Betätigung ermöglicht (genau wie linux bash shell, mysql cli, cmd.exe und unzählige andere), erlauben Kommandozeilenbearbeitungsfunktionen (Verlauf, Cursortasten um Text zu bewegen ..), usw.

Jetzt ist es nicht so viel von a Problem, etwas wie das zu schaffen, indem ich mein eigenes von Grund auf rolle, Benutzereingaben handhabend, gedrückte Schlüssel scannte, und korrekte Handlungen tust. Aber warum das Rad neu erfinden? Gibt es eine Bibliothek/ein Framework, die/das bei dieser Art von Problemen hilft, genau wie die readline-Bibliothek, die verbesserte Kommandozeilen-Bearbeitungsfunktionen unter Linux bietet?

Natürlich ist diese neue „Shell“ würde nur gültig, domänenspezifische Befehle reagieren, und würde gültigen Argumente sprechen dafür, Optionen, Schalter ...

Irgendwelche Ideen? Vielen Dank!

Antwort

1

Das klingt wie eine Passform für PowerShell. Es ist eine vollwertige Shell, Sie können benutzerdefinierte Shells erstellen, die eine Reihe von Snapins für Ihre domänenspezifischen Befehle enthalten (die in C# entwickelt werden können), und es ermöglicht auch die Remoteausführung von Befehlen.

Auf der negativen Seite, die Umsetzung von etwas für Ihren speziellen Fall wird nicht frei sein, wie in wenig Arbeit.

Viele MS-Server-Produkte haben jetzt benutzerdefinierte PowerShell "Shells", z.

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

aktualisieren

Der Nachteil eine neue Shell lernt und wie es zu gestalten, und ein besonders das ist objektorientiert. Das Kaninchenloch geht hierauf tief ein, aber das Rollen der eigenen Shell-Funktionalität kann natürlich ziemlich zeitaufwendig sein.

Einige Verknüpfung:

Das Buch: Windows PowerShell in Action

Allgemein: http://www.computerperformance.co.uk/powershell/index.htm

Intro benutzerdefinierten Befehl \ Meßbereichsregeleinrichtung in: http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

+0

Können Sie mir sagen, wo auf der Suche nach mehr Informationen suchen Gegenstand? Außerdem, wenn es dir nichts ausmacht, diesen Nachteil ein wenig auszuarbeiten - meinst du, wenn ich meine eigene Route herunterfahre oder versuche, das zu implementieren, was ich mit PS machen will? –

+0

@ mr.b Sorry, ich meinte, der Nachteil wäre, sich mit der ganzen PS-Sache auseinanderzusetzen. –

+0

Danke, Sie waren wirklich hilfreich! –

Verwandte Themen