RSBasic hat geschrieben:@Falko
Es ist zwar ne schöne Idee, Befehle miteinander zu verketten und diese als Ganzes per RunProgramm() auszuführen, aber man muss bedenken, dass man nur kleine Batch-"Dateien" übergeben kann, da auch das Übergeben von Parametern begrenzt ist.
Sinnvoller ist, seine Datei, die im DataSection gespeichert ist, im Temp-Verzeichnis zu speichern und diese dann auszuführen.
Sicher kann man nur kleine Batchdateien in Abhängigkeit der Parameterbegrenzung nutzen. Aber viel Kleinvieh
macht auch viel mist.
Das soll heissen:
Sobald die erste CMD-Ausgabe getan ist, führt die Exe weitere Kommandos über ein erneutes RunProgramm aus.
Da sehe ich keine Nachteile.Und der Vorteil ist hierbei, das man eben nicht die Textdateien (.bat und .cmd) so leicht einsehen kann. Auch eine kurz gespeicherte Tempdatei lässt sich kopieren und einsehen.
[Edit]
Als Test habe ich mal echos eingesetzt, um zu sehen, wieviele Buchstaben über CMD möglich sind.
Ich komme hiermit auf 8064 Buchstaben bei 127 Comands , womit sich schon größere Batches aufbauen lassen.
Ich denke nicht, das man so viele Zeilen für eine Batch benötigt ( siehe folgenden Testsource)
Code: Alles auswählen
MyBatch.s="/K @echo on"
MyBatch+"& title Test Batch"
MyBatch+"& dir"
MyBatch+"& pause"
For i =1 To 123
MyBatch+"& echo Hallo, das ist mal ein schöner Satz, der vervielfacht wird"
Next
MyBatch+"& echo Hier höre ich mal auf"
Debug Len(MyBatch)
MyProg=RunProgram("cmd",MyBatch,"",#PB_Program_Write)
[/Edit]
Gruß Falko