BAT to EXE

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: BAT to EXE

Beitrag von Falko »

RSBasic hat geschrieben:Dann kann man doch gleich die Konsole benutzen. Somit braucht man nicht ständig irgendwelche Parameter übergeben:

Code: Alles auswählen

ImportC "msvcrt.lib"
  system(cmd.p-ascii)
EndImport

If OpenConsole()
  system("title Test Batch")
  system("dir")
  system("echo PureBasic Forever")
  system("pause")
  
  CloseConsole()
EndIf
Geht doch also auch ohne Temp :mrgreen:
Danke für deinen Tip und schöne Grüße,
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
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

Re: BAT to EXE

Beitrag von ts-soft »

So ist es ja keine Batch-Datei mehr und die Vorteile sind damit auch flöten gegangen.
Batch arbeitet ja eine Program nach dem anderen ab, jetzt wartet aber eure ganze
Anwendung.
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.
Bild
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Re: BAT to EXE

Beitrag von Coder Pinhead »

Danke erst mal für die vielen guten Tipps.

Ich hab jetzt mal das von Falko versucht.
Falko hat geschrieben:

Code: Alles auswählen

MyBatch.s="/C @echo on"
MyBatch+"& title Test Batch"
MyBatch+"& dir"
MyBatch+"& pause"
RunProgram("cmd",MyBatch,"")
Und an einer stelle im Skript kommt es bei mir zu einem Problem.

Code: Alles auswählen

MyBatch.s="/C @echo on"
MyBatch+"& title Sehr lange Batch-Datei"
MyBatch+"& ren %USERPROFILE%\Desktop\irgendeinedatei.exe "backup %tag%.%monat%.%jahr%.exe" 2>NUL >NUL"
MyBatch+"& pause"
RunProgram("cmd",MyBatch,"")
Fehler Meldung:
Zeile 3: 'backup' ist kein gültiger Operator.

Mir ist zwar klar weshalb es zum Fehler kommt und zwar wegen dem "" bei "backup %tag%.%monat%.%jahr%.exe" weiß nur nicht wie ich das Problem beseitigen kann damit das Batch Skript richtig funktioniert.
Zuletzt geändert von Coder Pinhead am 29.04.2011 21:11, insgesamt 1-mal geändert.
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: BAT to EXE

Beitrag von RSBasic »

Verwende stattdessen Chr(34).
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: BAT to EXE

Beitrag von Falko »

Das sieht dann so aus

Code: Alles auswählen

MyBatch+"& ren %USERPROFILE%\Desktop\irgendeinedatei.exe "+Chr(34)+"backup %tag%.%monat%.%jahr%.exe"+Chr(34)+"2>NUL >NUL"
Gruß, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Re: BAT to EXE

Beitrag von Coder Pinhead »

RSBasic hat geschrieben:Verwende stattdessen Chr(34).
Falko hat geschrieben:

Code: Alles auswählen

MyBatch+"& ren %USERPROFILE%\Desktop\irgendeinedatei.exe "+Chr(34)+"backup %tag%.%monat%.%jahr%.exe"+Chr(34)+"2>NUL >NUL"
Danke euch beiden das hat zwar geklappt.
Aber das Skript läuft trotzdem nicht ganz rund.

Also zum nächsten Problem und zwar sollte wenn es nach der Batch-Datei geht die Datei am ende so "Backup 29.04.2011.exe" und nicht so "Backup %tag%.%monat%.%jahr%.exe" aussehen.

Kann es sein das die Befehle durch PureBasic anders verarbeitet werden und man dieses Problem nur so Lösen kann indem man es direkt in PureBasic Programmiert?
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: BAT to EXE

Beitrag von RSBasic »

Versuch stattdessen folgende Umgebungsvariable:

Code: Alles auswählen

%date%
Ausgabe:
cmd.exe hat geschrieben:29.04.2011
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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

Re: BAT to EXE

Beitrag von ts-soft »

Die Environmentvariablen mußte wohl auflösen lassen: ExpandEnvironmentStrings_()
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Aber das ganze macht einfach keinen Sinn. Schreibe ein Batch und starte es und Dein
Programm kann weiterlaufen, wäre dann auch der einzige Vorteil des Batches.
Wenn Du diesen Vorteil sowieso nicht nutzt, wäre es mit Sicherheit besser, das ganze
in PB umzuschreiben. Die netten Tipps der Kollegen funktionieren zwar, ersetzen aber
den einzigen Vorteil des Batches nicht, somit also nicht sinnvoll (auch funktionierendes
ist nicht immer Sinnvoll).
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.
Bild
Coder Pinhead
Beiträge: 234
Registriert: 27.02.2007 10:54
Wohnort: Germany

Re: BAT to EXE

Beitrag von Coder Pinhead »

RSBasic hat geschrieben:

Code: Alles auswählen

%date%
Hat auch geklappt danke.

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.
Windows 8.1 x64 | PureBasic v5.x x86/x64

Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: BAT to EXE

Beitrag von Falko »

Da muss ich nun mal ts-soft zu den echten Batch-Dateien Recht geben :mrgreen: .

Die Sprungmarken können nur über die Bat-Datei erneut eingelesen werden bzw. angesprungen werden.
Da aber keine echte BAT-Datei existiert, kommt eben folgender Fehler:
CMD.EXE hat geschrieben:Ungültiger Versuch, ein Sprungziel außerhalb einer Batchdatei aufzurufen.
Um dieses dann nutzen zu können, wäre eine temporäre BAT-Datei die bessere Lösung, welche man nach der
Ausführung sofort löschen kann.

Gruß, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten