Seite 1 von 1
Programm Parameter ">"
Verfasst: 05.06.2012 18:07
von Knight_Rider_2000
Ich habe ein Programm, welches folgende Syntax benötigt
Jedoch wenn ich es mittels RunProgram() aufzurufen macht das ">" Zeichen hierbei Probleme
Code: Alles auswählen
prog=RunProgram("programm.exe","datei1.txt > datei2.txt","",#PB_Program_Hide | #PB_Program_Open | #PB_Program_Error | #PB_Program_Read)
If prog
While ProgramRunning(prog)
String.s=ReadProgramError(prog)
If String<>""
Debug String
EndIf
Wend
EndIf
Cannot open >: Invalid argument
PS: Das Zeichen ">" ist dazu da, dass das programm.exe die Ausgabe nicht zurückgibt, sondern in eine Datei speichert.
Re: Programm Parameter ">"
Verfasst: 05.06.2012 18:12
von STARGÅTE
Probier mal:
RunProgram("programm.exe", #DQUOTE$+"datei1.txt > datei2.txt"+#DQUOTE$, ...
Re: Programm Parameter ">"
Verfasst: 05.06.2012 19:01
von Knight_Rider_2000
erstmal danke für die Antwort. Ich habe deine Idee gleich mal umgesetzt, jedoch keine Besserung.
cannot open C:\Users\{...}datei1.txt > C:\Users\{...}datei2.txt: Invalid argument
Muss man denn nicht eig das Zeichen "Escapen"? doch ein "\>" oder in manchen Foren hab ich auch "^>","^^^>" gesehen, was mir aber auch nicht half.
Re: Programm Parameter ">"
Verfasst: 05.06.2012 19:07
von STARGÅTE
Da ich nicht weiß, was das ">" bedeuten soll, kann cih dir leider nicht weiter helfen.
Fest steht, das jeder Parameter in doppelte Anführungszeichen eingeschlossen werden muss, wenn er nicht aus reinem Text gesteht.
"Parameter 1" "2. Parameter" "Parameter Nummer 3"
Vielleicht will dein Programm auch einfach nur zwei Parameter, also die beiden Dateinamen:
Code: Alles auswählen
RunProgram("programm.exe", #DQUOTE$+"datei1.txt"+#DQUOTE$+" "+#DQUOTE$+"datei2.txt"+#DQUOTE$, ...
Re: Programm Parameter ">"
Verfasst: 05.06.2012 19:10
von DarkDragon
@STARGATE:
">" soll eine Dateiausgabe werden - Stichwort Pipes.
Er will den StandardOutput von dem Programm in eine Datei weiterleiten. Hierzu benötigt man ReadProgramData(Programm, *Buffer, Groesse).
Leider habe ich gerade nicht sehr viel Zeit das ausführlicher zu beschreiben, wenn das mal bitte jemand anders übernehmen könnte?
Re: Programm Parameter ">"
Verfasst: 05.06.2012 19:16
von Knight_Rider_2000
Auf Linux Systemen weist der ">" daraufhin, dass die Ausgabe in die nachfolgende Datei geschrieben wird. Dieses Programm ist für Linux und Windows geschrieben und hat demzufolge auch in Windows diesen Teil. datei2.txt sagt hierbei nur aus, dass das Programm die Ausgabe von den vorherigen Datei(en) in datei2.txt schreiben soll.
Sinn und Zweck dieses Programmes ist es, dass ich in datei1.txt Kompilierten Lua Quellcode habe (den ich voher mit luac.exe kompilierte) nun als Überprüfung mit luadec("programm.exe") zurückdekompileren will um zu testen, ob luadec die Verschlüsselung schafft. Wenn luadec diese nicht schafft bleibt datei2.txt leer. Über die Cmd lässt sich programm.exe datei1.txt > datei2.txt ganz normal eingeben und ausführen, per Parameter schaffe ich es aber nicht.
Re: Programm Parameter ">"
Verfasst: 05.06.2012 19:18
von NicTheQuick
Probier mal
Code: Alles auswählen
prog=RunProgram("programm.exe","datei1.txt","",#PB_Program_Hide | #PB_Program_Open | #PB_Program_Error | #PB_Program_Read)
If prog
While ProgramRunning(prog)
String.s=ReadProgramString(prog)
If String<>""
Debug String
EndIf
Wend
EndIf
Dann sollte das, was dir Debug ausgibt dem eigentlichen Inhalt der datei2.txt entsprechen.
Wenn man in der Konsole schreibt
dann bekommt "programm.exe" den Parameter "datei1.txt" übergeben und alles, was das Programm normalerweise ausgeben würde, wird in "datei2.txt" geschrieben.