myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
der_sharky der_sharky ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.05.2017
Beiträge: 21


der_sharky ist offline

Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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 !

C#-Code:
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();
}

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von der_sharky am 30.07.2020 11:49.

30.07.2020 11:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JimStark
myCSharp.de-Mitglied

avatar-1005.jpg


Dabei seit: 10.03.2020
Beiträge: 81
Entwicklungsumgebung: Visual Studio 6.0 Enterprise


JimStark ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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/...-line-arguments

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JimStark am 30.07.2020 11:42.

30.07.2020 11:41 Beiträge des Benutzers | zu Buddylist hinzufügen
der_sharky der_sharky ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.05.2017
Beiträge: 21

Themenstarter Thema begonnen von der_sharky

der_sharky ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von der_sharky am 30.07.2020 11:54.

30.07.2020 11:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.598
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Besser so (ungetestet) :

C#-Code:
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
30.07.2020 11:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MarsStein MarsStein ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3191.gif


Dabei seit: 27.06.2006
Beiträge: 3.156
Entwicklungsumgebung: VS 2013, MonoDevelop
Herkunft: Trier -> München


MarsStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

Zitat von BerndFfm:
args[0] ist der Name der Anwendung selber.

Nein. Nicht in C#/.NET.

Gruß, MarsStein
30.07.2020 15:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Taipi88 Taipi88 ist männlich
myCSharp.de-Mitglied

avatar-3220.jpg


Dabei seit: 02.02.2010
Beiträge: 1.013
Entwicklungsumgebung: VS 2010
Herkunft: Mainz


Taipi88 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
30.07.2020 15:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.598
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von MarsStein:
Hallo,

Zitat von BerndFfm:
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
31.07.2020 10:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Spook Spook ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.10.2008
Beiträge: 214
Entwicklungsumgebung: VS2019
Herkunft: Esslingen a.N.


Spook ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat:
Wo hatte ich das nur wieder her ?

 Environment.GetCommandLineArgs gibt dir den Pfad der Anwendung als erstes Argument.
31.07.2020 11:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.029
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

04.08.2020 10:38 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 13.08.2020 16:06