Wie kann ich in C# ein bestimmtes CommandLineArgument auslesen?

3 Antworten

ohne viel Worte:

using System; 
using System.IO;
class test { 
static void Main(string[] args) 
{ 
    Console.WriteLine("Hallo ich  bin Dein Programm: \"{0}\"",System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
    if(args.Length > 0) 
    {
        Console.WriteLine("Übergebene Argumente:"); 
        foreach(string sArg in args) 
        { 
            Console.WriteLine(sArg); 
            if (!File.Exists(sArg))
            {
                Console.WriteLine("Datei nicht gefunden.");
            }
            else
            {    Console.WriteLine("Datei gefunden.");}
        } 
    } 
    else
    { 
        Console.WriteLine("Keine Argumente  übergeben."); 
    } 
    Console.WriteLine("weiter  mit  beliebiger Taste...");
    Console.ReadKey();
} } 

Das Programm macht nichts anderes als zu evtl. Argumente entgegen zu nehmen , zu schauen ob es sich bei dem Argument um eine Datei handelt und ein paar Antworten zu geben.



Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Make sure your Main method (in Program.cs) is defined as:

void Main(string[] args)

Then args is an array containing the command-line arguments.

...

Passing command-line arguments in C# - Stack Overflow

Von Experten Roderic und Dultus, UserMod Light bestätigt

Die Argumente stehen in der main function im Parameter args[].

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer

AllesKaese3 
Beitragsersteller
 30.04.2021, 20:39

und wie kann ich das erste argument da rausholen? bin bissl dumm :D

0
Roderic  30.04.2021, 20:43
@DonkeyShot

args[1] ist der erste Parameter.

args[0] ist das command selber (die exe inklusive kompletter Pfad ;-)

1
AllesKaese3 
Beitragsersteller
 30.04.2021, 20:43
@DonkeyShot

wie kann ich das als string argument da raus holen ._.

0
DonkeyShot  30.04.2021, 20:46
@Roderic

Ok, thx für die Korrektur. Ich kenn's von VB anders. Gerade nochmal getestet. Wenn ich "a b c" als Kommandozeile angebe, habe ich im Array 3 Elemte, nämlich "a", "b" und "c". Gut, wieder was gelernt.

0
DonkeyShot  30.04.2021, 20:47
@AllesKaese3

args[1] ist schon ein String. Kannst du einfach verwenden wie jeden anderen String.

1
DonkeyShot  30.04.2021, 20:48
@Roderic

In C# ist es auch wie in VB, also args[0] ist nicht der Pfad zur Exe, sondern das erste ARgument.

1
Roderic  30.04.2021, 20:49
@DonkeyShot

Hab ich auch grad gemerkt.

Mein Fehler.

Aber das Prinzip ist klar.

Damit sollte der Frager weiterkommen.

1
DonkeyShot  30.04.2021, 20:50
@AllesKaese3

"funktioniert nicht" bedeutet was? Korrektur meinerseits: Wenn du nur 1 Argument übergibst, steht es in args[0]. Sry für die Verwirrung.

1