Laden...

Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?

Erstellt von der_sharky vor 3 Jahren Letzter Beitrag vor 3 Jahren 2.071 Views
D
der_sharky Themenstarter:in
23 Beiträge seit 2017
vor 3 Jahren
Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?

Hallo zusammen,

ich beschäftige mich gerade mit der Kommandozeilenparameter in C# und Visual Studio. Im Visual Studio habe ich eine einfache Anwendung erstellt und testmässig drei Parameter eingegeben. Später möchte ich in der Eingabeauforderung die Anwendung (exe) starten. Je nach ausgewählten Parameter sollte die Anwendung vershiedener Text ausgeben.

Meine Frage:
Wie benutze ich die Parameter im C# Code bzw. wie kann ich bestimmen was passiert wenn einen Parameter ausgewählt wurde ? Soll ich If-Anweisungen benutzen ? So ist der Code :
Danke !


 static void Main(string[] args)
        {

  

            var arg1 = args[0];
            var arg2 = args[1];
            var arg3 = args[2];

//Wie kann ich es  hier programmieren, wenn ich in der Eingabeauforderung z.B die Parameter eigebe dass sich die Anwedung entprechend verhält ? Wenn Parameter X ausgewählt wurde dann mach das und das

            if (?)
                Console.WriteLine("Das ist a");
            Console.ReadLine();

            if (?)
                Console.WriteLine("Das ist b");
            Console.ReadLine();

            if (?)
                Console.WriteLine("Das ist c");
            Console.ReadLine();
}

309 Beiträge seit 2020
vor 3 Jahren

Ich versteh nicht genau was du machen willst,

args.Length gibt dir die Anzahl an Parametern, also die Länge des arrays.
Mit args[0,...] greifst du dann auf die einzelnen Parameter zu.

Siehe hier:
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments

D
der_sharky Themenstarter:in
23 Beiträge seit 2017
vor 3 Jahren

Hi JimStark du hast Recht. Eigentlich was ich wissen möchte ist wie ich innerhalb des Codes alles steueren kann. Wenn Parameter X ausgewählt wurde dann mach das und das. Übrigens Danke für den Link. Leider dort wird nur gezeigt wie man alle Parameter in der Konsole ausgeben kann.

3.825 Beiträge seit 2006
vor 3 Jahren

Besser so (ungetestet) :


foreach(string arg in args)
{
    if (arg.ToLower() == "/a")  Console.WriteLine("/a gewählt");
    if (arg.ToLower() == "/b")  Console.WriteLine("/b gewählt");
    if (arg.ToLower() == "/c")  Console.WriteLine("/c gewählt");
}

args[0] ist der Name der Anwendung selber.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

3.170 Beiträge seit 2006
vor 3 Jahren

Hallo,

args[0] ist der Name der Anwendung selber.

Nein. Nicht in C#/.NET.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.029 Beiträge seit 2010
vor 3 Jahren

Hi,

als Anmerkung und gerade wenn es etwas vielfältiger und komplexer wird kann es auch das Leben erleichtern, wenn man eine entsprechende Lib benutzt.

Für eine meiner Anwendungen habe ich z.B. https://www.nuget.org/packages/CommandLineParser/ verwendet.

Wobei die einfachste Möglichkeit (siehe @BerndFfm wenn du nur wenige und unkomplizierte Argumente brauchst) hier definitiv den Vorzug genießen sollte. Muss ja keiner das Rad neu erfinden...

LG

3.825 Beiträge seit 2006
vor 3 Jahren

Hallo,

args[0] ist der Name der Anwendung selber.

Nein. Nicht in C#/.NET.

Gruß, MarsStein

Tatsächlich ! Wo hatte ich das nur wieder her ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

S
248 Beiträge seit 2008
vor 3 Jahren

Wo hatte ich das nur wieder her ? Environment.GetCommandLineArgs gibt dir den Pfad der Anwendung als erstes Argument.