PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# - Parameter in der Kommandozeile mitgeben?


ooAlbert
2009-07-14, 14:33:59
Hi,

ich hab eine Konsolen-Anwendung geschreiben und überleg jetzt anstatt fester Parameter diese beim Start der Anwendung in der Kommandozeile mitzugeben. wie würde man das am besten umsetzen? Ich hab übrigens nur die Main-Methode.

mfg

redfalcon
2009-07-14, 14:39:39
Ich kenne C# jetzt nicht, aber es scheint ja wie in C/C++ Argumente für die main() zu geben:


static void Main(string[] args) {..}


In dem Array stehen dann die Sachen, die du beim Aufruf aus der Konsole mit übergeben hast.
Also z.B.:


bla.exe -arg1 -arg2 -arg3


In args[0] würde dann "-arg1" stehen, in args[1] "-arg2" usw.. Wenn in args[0] der Programmname (wie in C/C++) steht, musst du mal testen. Edit: Scheint nicht so zu sein, also steht das erste Argument in args[0].

Siehe auch hier:
http://msdn.microsoft.com/en-us/library/cb20e19t.aspx

ooAlbert
2009-07-14, 15:12:46
oh, das ist ja einfach :)

ich habs gerade probiert:

name.exe arg0 arg1 arg2

ohne die Anstriche davor.

TheGamer
2009-07-14, 16:02:20
oh, das ist ja einfach :)

ich habs gerade probiert:

name.exe arg0 arg1 arg2

ohne die Anstriche davor.

Jo ohne Anstriche auch, einfach nur das was mittels Leerzeichen getrennt ist.

Funky Bob
2009-07-14, 16:08:22
[QUOTE=redfalcon;7414133]

bla.exe -arg1 -arg2 -arg3


In args[0] würde dann "-arg1" stehen, in args[1] "-arg2" usw.. Wenn in args[0] der Programmname (wie in C/C++) steht, musst du mal testen. Edit: Scheint nicht so zu sein, also steht das erste Argument in args[0].


Müsste in C# nicht, wie in C auch, der erste Parameter immer der Dateiname selbst sein?

Monger
2009-07-14, 17:21:46
Müsste in C# nicht, wie in C auch, der erste Parameter immer der Dateiname selbst sein?
Nein, es werden nur die Kommandozeilenparameter durchgereicht - obwohl natürlich das Programm im Endeffekt mit dem Dateinamen voran aufgerufen wird. An den Dateinamen kommt man auch anders heran.

MuLuNGuS
2009-07-15, 09:36:00
den dateinamen gibt es so: (auch wenn er später geändert wurde!)


FileInfo fileinfo = new FileInfo(Assembly.GetExecutingAssembly().Location);

Console.WriteLine(fileinfo.Name);

=Floi=
2009-07-18, 17:48:27
kann diesen ein anderes programm auch auslesen?

MuLuNGuS
2009-07-18, 23:35:29
kann diesen ein anderes programm auch auslesen?

ja, das sollte auch gehen...