Seite 1 von 1

Kommandozeilen-Parameter

Verfasst: 09.11.2006 23:52
von Tw4!n
Hi!
Könntet ihr mir sagen wie ich solche Kommandozeilen verwende?
Also, wen ich zB mit cmd, oder ein Konsolenprogramm von mir, ein von mir geschriebenes Programm aufrufe. zB:

RunProgram("test.exe","/a","") oder über cmd: start test.exe /a

wie mache ich das, dass mein Programm das aufgerufen wurde das merkt und die jeweilige Option dafür ausführt?

Verfasst: 09.11.2006 23:53
von Kaeru Gaman
lies mal in der help nach.
in der beschreibung von RunProgram() findest du auch einen verweis auf ProgramParameter()

Verfasst: 10.11.2006 00:01
von ts-soft
Zur Auswertung gibts verschiedene Möglichkeiten, hier mal eine, für beliebige
Parameter, ohne Verwendung des Index:

Code: Alles auswählen

Repeat
  Select LCase(ProgramParameter())
    Case "/a"
      ; code für /a
    Case "/b"
      ; code für /b
    Case ""
      quit = 1
  EndSelect
Until quit = 1

Verfasst: 10.11.2006 00:12
von PMV
Hinweis: Sich zur Ermittlung des letzten Parameters auf die Rückgabe eines leeren Strings zu verlassen, ist keine gute Praxis, da der Befehl auch einen leeren String zurückgibt, wenn in "" ein leerer String in der Kommandozeile übergeben wurde. Der bessere Weg zur Ermittlung aller Parameter ist es, die Anzahl mittels CountProgramParameters() zu ermitteln und dann ProgramParameter() sooft wie nötig aufzurufen.
... das ist meistens wirklich besser und auch nicht komplizierter :D

Verfasst: 10.11.2006 00:20
von ts-soft
Hab noch keinen Trottel gefunden, der so falsch die Parameter übergibt, aber
ansonsten haste wohl Recht :mrgreen:
Gab aber noch nie nen Fehler!

Korrigierter Code:

Code: Alles auswählen

For I = 1 To CountProgramParameters()
  Select LCase(ProgramParameter())
    Case "/a"
      ; code für /a
    Case "/b"
      ; code für /b
    Default
      Debug "unbekannter Parameter"
  EndSelect
Next

Verfasst: 10.11.2006 00:53
von Tw4!n
Danke!
Habe mich jetzt ein bisschen mit dem beschäftigt, und stehe schon wieder vor dem nächsten wo ich nicht weiterkomme :|
Und zwar möchte ich, dass man nach einem Parameter einen string, oder eine Zeichenkette anhängen kann, die das Programm nachher ausgibt, jedoch bin ich entweder zu dumm richtig zu suchen, oder einfach nur zu müde...

Verfasst: 10.11.2006 01:05
von ts-soft
Wenn Du müde bist, geh schlafen :D

Code: Alles auswählen

Para = CountProgramParameters()

While Para
  Select LCase(ProgramParameter())
    Case "/a"
      text.s = ProgramParameter()
      Para - 1
    Case "/b"
      ; code für /b 
   EndSelect
   Para - 1 
Wend
Debug text

Verfasst: 10.11.2006 01:07
von Kaeru Gaman
wenn dein string leerzeichen enthält, würde er als einzelne parameter gelesen werden,
also musst du ihn in anführungszeichen übergeben.

beispiel für das hinzufügen von anführungszeichen zu einem string:

Code: Alles auswählen

Argument2$ = Chr(34) + "Dieser Text steht in Anführungszeichen." + Chr(34)

Debug Argument2$
[edit]
ha, ts, du warst zwar schneller, aber du hast das space-problem vergessen.
ätsch... :mrgreen:

Verfasst: 10.11.2006 22:10
von Tw4!n
Danke euch zwei, funktioniert primer.