Wie kann ich in C# ein bestimmtes CommandLineArgument auslesen?
Hallo, allerseits.
Ich möchte einfach nur das erste Argument ausgeben, wenn man die exe mit cmd z.B. öffnet (C:\lol.exe lol lul <-- hier soll nur das lol ausgegeben werden).
Danke im Vorraus.
3 Antworten
![](https://images.gutefrage.net/media/user/Erzesel/1497339133085_nmmslarge__0_524_1080_1080_4b38ff31970de3b94deb6a27ca8a8f01.jpg?v=1497339133000)
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.
![](https://images.gutefrage.net/media/user/Roderic/1444750288_nmmslarge.jpg?v=1444750288000)
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.
...
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Die Argumente stehen in der main function im Parameter args[].
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/Roderic/1444750288_nmmslarge.jpg?v=1444750288000)
args[1] ist der erste Parameter.
args[0] ist das command selber (die exe inklusive kompletter Pfad ;-)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
wie kann ich das als string argument da raus holen ._.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
args[1] ist schon ein String. Kannst du einfach verwenden wie jeden anderen String.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
In C# ist es auch wie in VB, also args[0] ist nicht der Pfad zur Exe, sondern das erste ARgument.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
first_arg = args[1]; funktioniiert nicht...
![](https://images.gutefrage.net/media/user/Roderic/1444750288_nmmslarge.jpg?v=1444750288000)
Hab ich auch grad gemerkt.
Mein Fehler.
Aber das Prinzip ist klar.
Damit sollte der Frager weiterkommen.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
"funktioniert nicht" bedeutet was? Korrektur meinerseits: Wenn du nur 1 Argument übergibst, steht es in args[0]. Sry für die Verwirrung.
und wie kann ich das erste argument da rausholen? bin bissl dumm :D