Seite 1 von 2
[ ERLEDIGT ] ProgramParameter übergeben?
Verfasst: 04.06.2020 23:52
von udg
Hallo,
ich sitze nun schon wieder eine gefühlte Ewigkeit an der Übergabe von Parametern.
In der Batch lauten diese wie folgt:
ich benötige:
oder?
Code: Alles auswählen
RunProgram("programm.exe ", "p d " + "output.blub", "")
oder?
Code: Alles auswählen
RunProgram("programm.exe ", "p " + "d " + "output.blub", "")
nichts will funktionieren das Programm nimmt keine Parameter . Was mache ich denn falsch?
Grüße
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 00:10
von Kiffi
die Pfade zu programm.exe und output.blub stimmen?
Sind Leerzeichen in den Pfaden?
Grüße ... Peter
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 00:19
von udg
die Pfade stimmen. Wenn ich nur die Exe aufrufe startet es diese.
Ja der Zielpfad besitzt leerzeichen.
Aber wie gesagt, rufe ich nur die Exe auf, wird diese auch gestartet
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 00:35
von Kiffi
udg hat geschrieben:Ja der Zielpfad besitzt leerzeichen.
dann solltest Du diesen mit Anführungszeichen (Chr(34)) klammern.
so in etwa:
Code: Alles auswählen
Programm.s = Chr(34) + "kompletter/pfad/zu/programm.exe" + Chr(34)
Output.s = Chr(34) + "kompletter/pfad/zu/output.blub" + Chr(34)
RunProgram(Programm, "p d " + Output, "")
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 02:55
von udg
leider immer noch nicht. (habe zum testen alle Leerzeichen aus dem Zielpfad entfernt) ---> nix
folgendes habe ich jetzt direkt in die Prozedur geschrieben:
Code: Alles auswählen
Programm.s = Chr(34) + GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\RNC.EXE " + Chr(34)
Output.s = Chr(34) + GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\Game.rnc" + Chr(34)
RunProgram(Programm, "p d " + Output, "")
mit Chr(34) + + Chr(34) und ohne ---> keine gewünschte Funktion.
eigentlich hatte ich die Pfade schon als Global festgelegt aber geht auch noch nicht.
so:
Code: Alles auswählen
Global RNCPath.s = GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\RNC.EXE "
Global GameRnc.s = GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\Game.rnc"
dann sollte normal auch das funktionieren:
Code: Alles auswählen
Programm.s = RNCPath
Output.s = GameRnc
RunProgram(Programm, "p d " + Output, "")
auch nix.
nach der Programm Exe muss ebenfalls ein Leerzeichen sein vor den beiden Optionen. Klammer ich die Optionen aus. Ruft es das programm.exe auf und sagt mir nun, dass ich doch bitte die beiden Schalter "p d" anhängen soll + File.blub
Irgendwo stimmt was nicht
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 12:42
von HeX0R
nach der Programm Exe muss ebenfalls ein Leerzeichen sein vor den beiden Optionen
Natürlich muss das, das muss immer und überall!
Sprich: RunProgram fügt das bereits selbständig ein!
Versuch's mal so:
Code: Alles auswählen
Programm.s = Chr(34) + GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\RNC.EXE" + Chr(34)
RunProgram(Programm, "p d Game.rnc", GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\)
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 13:35
von grapy
Zitat:
nach der Programm Exe muss ebenfalls ein Leerzeichen sein vor den beiden Optionen
Natürlich muss das, das muss immer und überall!
Sprich: RunProgram fügt das bereits selbständig ein!
Diese Aussage finde ich sehr verwirrend.
RunProgram fügt hier gar nirgends Leerzeichen ein und braucht diese auch gar nicht !!!
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 14:33
von udg
HeX0R hat geschrieben:nach der Programm Exe muss ebenfalls ein Leerzeichen sein vor den beiden Optionen
Natürlich muss das, das muss immer und überall!
Sprich: RunProgram fügt das bereits selbständig ein!
Versuch's mal so:
Code: Alles auswählen
Programm.s = Chr(34) + GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\RNC.EXE" + Chr(34)
RunProgram(Programm, "p d Game.rnc", GetUserDirectory(#PB_Directory_ProgramData) + "udg\Playstation1Exe-RNCPacker\")
Danke geht.
Re: ProgramParameter übergeben?
Verfasst: 05.06.2020 18:23
von HeX0R
grapy hat geschrieben:
Diese Aussage finde ich sehr verwirrend.
RunProgram fügt hier gar nirgends Leerzeichen ein und braucht diese auch gar nicht !!!
Abstraktes Denken ist nicht so Deins?
Aber klar, richtig war die Aussage auch nicht

Re: [ ERLEDIGT ] ProgramParameter übergeben?
Verfasst: 06.06.2020 00:19
von Sicro
Meines Wissens muss der Programmpfad nicht in Anführungszeichen gesetzt werden, wenn Leerzeichen im Pfad sind. Solch ein Pfad ist nur problematisch als Parameter, weil der Pfad dann zerstückelt vom Programm eingelesen wird:
Parameter: p d C:\Users\Paul B.\Datei.txt
wird an das Programm so übergeben:
Parameter1: p
Parameter2: d
Parameter3: C:\Users\Paul
Parameter4: B.\Datei.txt
Fehler: Pfad unvollständig
Übergibst du den Pfad in Anführungszeichen:
Parameter: p d "C:\Users\Paul B.\Datei.txt"
wird an das Programm so übergeben:
Parameter1: p
Parameter2: d
Parameter3: C:\Users\Paul B.\Datei.txt
Alles ok, weil nun klar ist, dass das Leerzeichen kein Parameter-Trenner ist.