Entwickler-Ecke
Sonstiges (Delphi) - Mehzeiliger CMD Befehl
Georg08 - So 24.05.09 13:39
Titel: Mehzeiliger CMD Befehl
Hallo,
Ich habe folgende frage:
ich möchte folgende CMD-Befehle ausführen:
Quelltext
1: 2:
| cd C:\Mein_ordner\ Programm.exe -parm1 wert1 -parm2 wert2 |
wie kann ich dies ausführen über delhpi?
Delphi-Quelltext
1:
| windows.winexec(pchar(s),1); |
Das kann nur einzeilige scripts
Robert.Wachtel - So 24.05.09 13:40
Batchdatei schreiben und ausführen.
Georg08 - So 24.05.09 13:41
danke für die superschnelle antwort.
ich mache das gerade so, aber ich wollte wissen ob es eine schönere variante gibt...
hansa - So 24.05.09 13:42
Da hakts doch. Das Stichwort hierzu lautet "shellexecute".
Robert.Wachtel - So 24.05.09 13:51
hansa hat folgendes geschrieben : |
| Da hakts doch. [...] |
Woher willst Du das wissen?
ffgorcky - So 24.05.09 14:07
Ja, da ist jetzt wirklich die Frage:
Möchtest Du Dein MsDos-Batch zum Beispiel in ein Memo einlesen und dann das ganze wirklich Zeilenweise ausführen lassen? - das würde meiner Meinug nach dann so gehen:
Delphi-Quelltext
1: 2: 3:
| MemoBatch.Lines.LoadFromFile('WieAuchImmerEsHeisst.BeliebigeEndung'); for i:=0 to MemoBatch.Lines.Count-1 do windows.winexec(MemoBatch.Lines[i]); |
Oder möchtest Du das Script als ganzes ausführen?
Das müsste dann so gehen:
Delphi-Quelltext
1:
| ShellExecute('WieAuchImmerEsHeisst.BeliebigeEndung'); |
Timosch - So 24.05.09 14:19
WinExec ist deprecated und sollte generell nicht mehr verwendet werden. Bei Befehlen, die keine Programme sind (z.B. dir) stattdessen über ShellExecute cmd.exe mit Parameter "/c Befehl" ausführen.
Georg08 - So 24.05.09 14:26
ich will einfach nur eine mehrzeilige cmd aktion ausführen, also erst das verzeichnis ändern und dann eine datei mit parametern starten...
Timosch - So 24.05.09 14:43
Delphi-Quelltext
1:
| ShellExecute(handle,PChar('open'),PChar('c:\mein_ordner\programm.exe'),PChar('-parm1 wert1 -parm2 wert2'),PChar('c:\mein_ordner'),SW_SHOW); |
Die erste Zeile in deinem "mehrzeiligen Befehl" ist nicht nötig, da man in ShellExecute mit dem vorletzten Parameter das Standardverzeichnis setzen kann (s.o.).
WinExec bitte nicht mehr verwenden; das läuft auf neueren Windows-Versionen z.T. schon nicht mehr.
Robert.Wachtel - So 24.05.09 19:21
hansa hat folgendes geschrieben : |
| Das war im Kontext doch so zu erkennen. |
Sicher?
Georg08 hat folgendes geschrieben : |
| [...] ich mache das gerade so, aber ich wollte wissen ob es eine schönere variante gibt... |
:mrgreen:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!