Kommandozeilenparameter
-
Mein Problem ist egal wie wichtig das ist, ich brauche es.
Über switch kann ich auch bestimmen welche Funktion es ausführen soll.
-
wie gesagt du kannst dem programm damit werte übergeben.
wenn du also ein programm dateiloeschen hast und dann meinetwegen "dateiloeschen xyz.txt" aufrufst, wird der string "xyz.txt" in argv[1] abgelegt. wenn du dann im programm remove(argv[1]) aufrufst, wird also quasi remove("xyz.txt") aufgerufen.
wie du richtig erkannt hast, kannst dus auch mit switch machen. du kannst auch mittels for-schleife und switch die argvs durchgehen und dann irgendwelche werte ändern.
wie gesagt sinn machen sie mehr unter linux
-
ralf14743534 schrieb:
wie gesagt sinn machen sie mehr unter linux
quatsch, das OS hat damit nichts zu tun. Sinn macht es immer, wenn das Programm dynamisch ist und Parameter von Benutzer bekommt. Und selbst Windows hat ein haufen Zeug, mit dem man auch schnell machen kann. Ein anderes Bsp wäre da ein Compiler, auch die Windows Compiler haben viele Parametermöglichkeiten, usw. Wie gesagt, das was du da erzählst ist quatsch.
-
also ich hab sie bisher (von max payne mal abgesehen) nie gebraucht bzw benutzt, einfach weil windows und -programme imho mehr darauf ausgelegt sind, mit der maus bedient zu werden, während man unter linux (mittlerweile auch nicht mehr unbedingt, aber es war mal so) zum löschen von dateien oder was auch immer besondere rechte erfordert die konsole öffnen muß wo die kommandozeilenparameter einfach gebraucht werden.
ich weiß nicht, obs jetzt so sinnig ist, word oder was mit kommandozeilenparameter zu öffnen. windows ist nunmal für klickibunti ausgelegt
-
ralf14743534 schrieb:
also ich hab sie bisher (von max payne mal abgesehen) nie gebraucht bzw benutzt,
das heißt aber nicht, dass sie unter Windows "keinen Sinn" machen. Viele Programme sind so ausgelegt, dass sie keine Parameter braucht, um gestartet zu werden, aber dennoch welche haben. Du musst mit /h aufrufen und wirst sehen, dass viele Programme sehr wohl Parameter bekommen (können).
ralf14743534 schrieb:
während man unter linux (mittlerweile auch nicht mehr unbedingt, aber es war mal so) zum löschen von dateien oder was auch immer besondere rechte erfordert die konsole öffnen muß wo die kommandozeilenparameter einfach gebraucht werden.
auch nicht ganz wahr. Es gibt schon seit vielen Jahren Desktops mit denen man auch nur mit der Maus seine Programme startet. Ich kenne einige Leute, die GNU/Linux einsetzen und noch nie etwas in der Konsole eingeben mussten/eingegeben haben (noch nie ist vielleicht übertrieben, aber wenn sie das mal einmal in Monat tun, dann ist es viel).
ralf14743534 schrieb:
ich weiß nicht, obs jetzt so sinnig ist, word oder was mit kommandozeilenparameter zu öffnen. windows ist nunmal für klickibunti ausgelegt
versuch's mal mit /h aufzurufen. Sehr oft möchte man Sachen ohne ihre Standardmäßiges Verhalten starten und solche Sachen lassen sich mit den Parametern realisieren. Dass du es nicht kennst, heißt nicht, dass es nicht sinvoll ist und/oder dass es unter Winows nicht gibt.
-
Dass du es nicht kennst, heißt nicht, dass es nicht sinvoll ist und/oder dass es unter Winows nicht gibt.
Wenn er sich nicht auskennt wäre ich dir dankbar wenn du den Sinn dieser Kommandozeilen erklären könntest.
-
neulinggggg schrieb:
Dass du es nicht kennst, heißt nicht, dass es nicht sinvoll ist und/oder dass es unter Winows nicht gibt.
Wenn er sich nicht auskennt wäre ich dir dankbar wenn du den Sinn dieser Kommandozeilen erklären könntest.
das habe ich 2 Mal bereits. Lesen hilft.
-
neulinggggg schrieb:
Mein Problem ist egal wie wichtig das ist, ich brauche es.
Über switch kann ich auch bestimmen welche Funktion es ausführen soll.
Du vergleichst Äpfel mit Birnen !!!
Kommandozeilenparameter sind NICHT soetwas ähnliches wie switch und machen auch nicht einmal annähernd das gleiche !!!
Kommandozeilenparameter kannst du durch Eingaben (z.B. scanf) während der Laufzeit ersetzen, manchmal macht es aber einfach mehr Sinn es per Parameter zu machen.
switch oder if brauchst du bei beiden Varianten (Parameter bzw. scanf).
Beispiel:
Ich soll gerade für eine Anwendung Variableninformationen aus einer Access-DB auslesen und in eine txt-Datei schreiben. Allerdings soll das Programm im Rahmen einer make-Anweisung automatisch mit durchlaufen und es soll im Nachhinein einige Einstellungen (die ich per Parameter übergebe) noch geändert werden können, so dass ich sie nicht fest in den Code packen kann.
-
Kommandozeilenparameter haben keine Vor- oder Nachteile. Sie sind in vielen Situationen einfach sinnvoll.
Nimm doch mal deinen Compiler: Über Kommandozeilenparametern werden ihm mehrere Optionen übergeben, wie beispielsweise die zu kompilierende Datei, der Name der Ausgabedatei, bestimmte Optimierungen, welche Warnungen angezeigt werden und so weiter. In einer IDE kannst du zwar oft über eine grafische Oberfläche in den Einstellungen Häkchen setzen, ruft deine IDE dann aber den Compiler auf, übergibt er ihm diese Einstellungen als Parameter.
Oder ein Editor: "edit blabla" ist schnell eingegeben und es wird sofort die Datei "blabla" in den Editor geladen. Das geht schneller als im Editor dann die Datei zu öffnen. Wenn du außerdem auf deinem Desktop eine Textdatei öffnest, muß auch der entsprechende Editor mit der zu öffnenden Datei als Parameter aufgerufen werden.
-
jedes programm, das du mit einem dateityp verknüpfen kannst (um die datei im explorer per doppelklick zu öffnen) muss den Dateinamen als Kommandozeilen paameter verarbeiten können
-
Und was hat das mit ANSI-C zu tun
-
@ralf14743534:
du hast doch bestimmt schon mal eine datei per drag and drop auf ein programmicon gezogen, sei es ein video auf einen videoplayer oder ein textdokument auf einen editor. das ist im endeffekt nur ein parameter der der an das programm uebergeben wird...