Seite 3 von 4

Verfasst: 20.08.2009 14:14
von KatSeiko
Mal so als Idee... Funktioniert das nicht mit RunProgram() und jeder Zeile, die sonst in der Batch-Datei landen würde? Am Anfang OpenConsole() davor, am Ende Input() und danach CloseConsole(). Oder öffnet das bei jedem Programmaufruf ein eigenes Command-Fenster?

Verfasst: 20.08.2009 14:30
von TomS
:lol: Dann kann er ja gleich alles in PB machen.

http://www.purebasic.fr/german/viewtopi ... highlight=

Also ne ein Programm zu schreiben, dass eine Batch-Datei ausführt, halte ich für dämlich. Nur weil er es nicht gebacken bekommt, den Pause-Befehl zu benutzen...

@Raphi: Poste mal den Inhalt deiner Batch-Datei. Vielleicht is da wo anders Quark drin.

Verfasst: 20.08.2009 17:00
von Raphi
Jo hier isser

Code: Alles auswählen

if SetIpConfig('196.11.175.221') = 0 then … // Set STATIC IP
if SetIpConfig('') = 0 then ..    // Set to DHCP
if SetupConfig('dhcp') = 0 then … // Same as above
if SetIpConfig('196.11.175.221','196.11.175.1') = 0 then ..  // STATIC + GATEWAY
pause

Verfasst: 21.08.2009 15:32
von TomS
Entweder Batch-hat sich in Windows Vista weiter entwickelt, oder das ist kein gültiger Batch-Code...

Seit wann gibt's denn Funktionen in Batch (also mit Klammern und so)? Und sein wann werden Kommentare mit // eingeleitet und nicht mit rem?
Und was soll dieses komische Zeichen in Zeile 1 und 3?

Code: Alles auswählen

C:\>raphi.bat
"=" ist syntaktisch an dieser Stelle nicht verarbeitbar.

C:\>if SetIpConfig('196.11.175.221') = 0 then à // Set STATIC IP
C:\>
Wenn ich nen Haufen Schrott in die erste Zeile schreibe, interessiert das pause am Ende natürlich niemanden mehr. :roll:

Verfasst: 21.08.2009 15:39
von Kaeru Gaman
TomS hat geschrieben:Wenn ich nen Haufen Schrott in die erste Zeile schreibe, interessiert das pause am Ende natürlich niemanden mehr. :roll:
:lol: made my day!

Verfasst: 21.08.2009 16:13
von TomS
Ja. Also bitte.

Code: Alles auswählen

If 23x = ReplaceString(Val("56"),"5","1")
Then echo "hallo welt" //kurzes Statement

MessageRequester("OK","Hat geklappt")
Warum zeigt er den MessageRequester nicht an :?: :roll:

Seine "Batchdatei" wird sogar korrekt debuggt. Er hat da also den gleichen Luxus, wie mit dem PB-Code da oben.

Verfasst: 21.08.2009 17:49
von Little John
TomS hat geschrieben:Entweder Batch-hat sich in Windows Vista weiter entwickelt, oder das ist kein gültiger Batch-Code...
Exakt das habe ich auch gedacht -- und zwar mindestens ziemlich weit weiterentwickelt ... :D

Gruß, Little John

Verfasst: 21.08.2009 17:55
von Vera
Hi Raphi,

nachdem ich dann lange genug über "Patchwork don't make Batchwork!" lachen konnte,
hab' ich Dir eine BatchCreator.bat für die kleine Pause zwischendurch gehext:

Code: Alles auswählen

@ echo off
echo Title PatchBatch > PatchBatch.bat
echo cls >> PatchBatch.bat
echo @ echo off >> PatchBatch.bat
echo pause >> PatchBatch.bat
echo color 4E >> PatchBatch.bat
echo echo + >> PatchBatch.bat
echo echo +++++++++++++ you hit it +++++++++ >> PatchBatch.bat
echo echo + >> PatchBatch.bat
echo pause >> PatchBatch.bat
echo %%systemroot%%\notepad.exe PatchBatch.bat >> PatchBatch.bat
PatchBatch.bat
pause
:wink: ~ Vera

Verfasst: 21.08.2009 18:30
von Raphi
Tja den code hab ich einfach aus dem internet übernommen.
Konnte ja nicht wissen das er so einfach nicht stimmt!

Verfasst: 21.08.2009 18:47
von Falko
Naja, da hättest du dich besser mit Delphi auseinander setzen können.

http://lummie.co.uk/how-to-change-ip-ad ... api-class/

Entweder wurde eine DOS-Funktion compiliert die dann in Batches angewendet werden kann, oder es war schlicht aus einem Delphi-Source
entnommen.

Die Teile die du hier als Batch vorgeführt hast, sind auch in diesem Source vorhanden.


Achja, die Funktion von der du sprachst ist diese Delphi-Funktion:

Code: Alles auswählen

function SetIpConfig(const AIpAddress : string;
const AGateWay : string = '';
const ASubnetMask : string = '') : integer;
...