Würd's ein Lua-Script nicht einfach auch tun
Also soviel ich weiß kann diese Skript-Sprache alles was BATCH kann und irgendjemand in der Community hat doch schon eine Integration für PB gemacht (hab ich mal gelesen hier irgendwo...).
Des Weiteren gibt es auch PB-Skript als nette alternative... Nur mal so am Rande, denn BATCH finde ich nicht so prickelnd weil einfach zu viele wichtige Funktionen nicht vorhanden sind...
ThinkPad T61 (in Gedenken) | PureBasic 4.61 B1 (32) | Windows 7 (32SP1) | ArchLinux (32) | Syllable (32)
Dann wäre da noch eine Sache die auch nicht so richtig funktioniert und zwar Sprünge.
Denke mal das man das so einfach bestimmt nicht Lösen kann, oder?
Wird wohl doch besser sein das teil einfach direkt in PureBasic zu Programmieren.
Bin nur ark aus der Übung da ich seit etwas über 3 Jahren nichts mehr gemacht hab.
Ich habe das nun mit RSBasic's Codebeispiel und Sprungmarken versucht. Somit kannst du
das evtl. so lösen. Hierzu ein Beispiel, wobei die Sprungmarken über PB und nicht per Batch-Befehl
erzeugt werden.
ImportC "msvcrt.lib"
system(cmd.p-ascii)
EndImport
If OpenConsole()
system("@echo off")
system("title Test Batch")
system("ren %USERPROFILE%\Desktop\irgendeinedatei.exe "+Chr(34)+"backup%date%.exe"+Chr(34)+"2>NUL >NUL")
Goto springe ;system("goto springe") geht nicht, daher Sprünge direkt in PB mit Goto
system("echo hallo"); dieses Echo wird aufgrund des Sprungs nicht ausgeführt.
springe: ; system(":springe") geht leider auch nicht, daher Sprungmarken am Besten als PB-Befehl einbauen.
system("echo gesprungen") ; wird beim Sprung jetzt korrekt angesprungen
system("pause")
CloseConsole()
EndIf
Aber was kann denn nun ein Batch, was PB nicht kann
Man kann sich das Leben natürlich schwer und kompliziert machen, aber warum sollte man das tun?
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.
Versuch doch einfach aus der Bat-Datei ein EXE zu machen. (z.B mit "Bat To Exe Converter 1.5.1")
Dann kannst Du deine Ursprünglich Idee mit IncludeBinary weiter verfolgen!
Gruß
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
ts-soft hat geschrieben:Aber was kann denn nun ein Batch, was PB nicht kann
Man kann sich das Leben natürlich schwer und kompliziert machen, aber warum sollte man das tun?
Diese beiden Fragen beschäftigen mich seit dem ich den Thread das erstemal erblickte....
Irgendein Programm starten... Kopieren... wassweissich... ist alles sogar nativ crossplatformed in PB.
Es schreckt wahrscheinlich ab, dass man evt. 2-3 Zeilen mehr Code schreiben müsste....
ImportC "msvcrt.lib"
system(cmd.p-ascii)
EndImport
If OpenConsole()
system("@echo off")
system("title Test Batch")
system("ren %USERPROFILE%\Desktop\irgendeinedatei.exe "+Chr(34)+"backup%date%.exe"+Chr(34)+"2>NUL >NUL")
Goto springe ;system("goto springe") geht nicht, daher Sprünge direkt in PB mit Goto
system("echo hallo"); dieses Echo wird aufgrund des Sprungs nicht ausgeführt.
springe: ; system(":springe") geht leider auch nicht, daher Sprungmarken am Besten als PB-Befehl einbauen.
system("echo gesprungen") ; wird beim Sprung jetzt korrekt angesprungen
system("pause")
CloseConsole()
EndIf
Im großem und ganzen funktioniert jetzt alles abgesehen von einer Kleinigkeit und zwar dem %errorlevel%.
Mit dem Goto oder Call innerhalb der selben batch funktioniert das mit der
CMD.exe leider nicht, da diese wohl die batdatei benötigt um intern diese nochmal
aufzurufen, damit gesprungen werden kann.
Wenn du aber nur Fehler ausgeben willst, könntest du es wie oben nutzen
[Edit] Aber...
mit dieser Zeile ist es auch möglich andere Anwendungen mittels errorlevel direkt auszuführen.
Verstehe das mit ProgramExitCode() und End errorlevel in dem fall nicht so ganz wie ich das einbringen kann bzw so wie ich es gerade mal ausprobiert hatte wahrscheinlich falsch hatte es das Programm direkt nach dem ausführen beendet ohne die Sprünge zu berücksichtigen.
Windows 8.1 x64 | PureBasic v5.x x86/x64
Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.