cmd befehle automatisch eingeben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag 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?
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag 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
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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.
Little John

Beitrag 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
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Beitrag 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
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Tja den code hab ich einfach aus dem internet übernommen.
Konnte ja nicht wissen das er so einfach nicht stimmt!
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:

Beitrag 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;
...
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten