2016-06-10 19 views
0

Ich mag würde Befehle innerhalb der ausführbaren Datei selbst zum Beispiel haben:C# Subkommandos innerhalb Konsolenanwendung

shorten http://stackoverflow.com/ 

und die URL wird als Argument analysiert werden, wenn ich es einstellen das Argument zurück, sollte es zurückgeben me http://stackoverflow.com/

Ein weiteres Beispiel ist

foo bar 

und es wird überprüft, was der Haupt Befehl ist die foo und -Unterbefehle darunter ist , das ist bar und wird den Befehl ausführen.

Dies sollte innerhalb der ausführbaren Datei erfolgen und nicht die ausführbare Datei im Verzeichnis aufrufen. Ich möchte mehrere benutzerdefinierte Befehle innerhalb der ausführbaren Datei haben und nicht für jeden Befehl eine erstellen.

Ich verstehe, wie Argumente zu haben, wenn jeder Befehl eine ausführbare Datei war, aber ich möchte ein paar Befehle und Unterbefehle innerhalb 1 ausführbar. Ist das möglich?

EDIT:

Das ist, was ich will:

static void Main(string[] args) 
    { 
     for (int i = 0; i < args.Length; i++) 
     { 
      if (args[i] == "short") 
      { 
       Console.WriteLine(args[i + 1]); 
      } 
     } 
     Console.Read(); 
    } 

, die mir die Argumente short zurück. Also, wenn ich short link tippe, gibt es mir link zurück.

Dies funktioniert jedoch nur, wenn ich die ausführbare Datei über die Befehlszeile wie C:\Path\ConsoleApplication1.exe nicht aufrufen, wenn ich die Anwendung öffnen und short link eingeben, die mir nichts zurückgeben und schließen.

Wie funktioniert es, wenn ich die Anwendung öffne und eintippe?

+2

Sicher ist es möglich ... Aber Frage im aktuellen Zustand ist zu breit und ein wenig unklar –

+1

Haben Sie versucht, dies selbst zu tun? – Toxicable

+0

Ich habe die Frage bearbeitet, um es klarer zu machen – pleasega

Antwort

1

können Sie Console.ReadLine verwenden:

var input = Console.ReadLine(); 

Kommando und Argument zu erhalten (s) verwenden String.Split:

var command = input.Split()[0]; 
var argument1 = input.Split()[1]; 

usw.

+0

Wie überprüfe ich, ob die Zeichenfolge/Eingabe ein Argument und nicht nur einen Befehl hat? – pleasega

+0

@pleasega - überprüfe die Länge des Arrays, die du mit 'input.Split()' bekommst, wenn es == 1 ist, dann hast du nur einen Befehl, wenn es> 1 ist, gibt es auch Argumente –

Verwandte Themen