Kommandozeilen-Parameter
Kommandozeilen-Parameter
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?
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?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Zur Auswertung gibts verschiedene Möglichkeiten, hier mal eine, für beliebige
Parameter, ohne Verwendung des Index:
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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

... das ist meistens wirklich besser und auch nicht komplizierterHinweis: 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.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Hab noch keinen Trottel gefunden, der so falsch die Parameter übergibt, aber
ansonsten haste wohl Recht
Gab aber noch nie nen Fehler!
Korrigierter Code:
ansonsten haste wohl Recht

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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

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...
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...
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Wenn Du müde bist, geh schlafen

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
Zuletzt geändert von ts-soft am 10.11.2006 01:07, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
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:
[edit]
ha, ts, du warst zwar schneller, aber du hast das space-problem vergessen.
ätsch...
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$
ha, ts, du warst zwar schneller, aber du hast das space-problem vergessen.
ätsch...

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.