Autor Beitrag
Georg08
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155
Erhaltene Danke: 6

Win XP
Delphi 7.0 Personal
BeitragVerfasst: So 24.05.09 13:39 
Hallo,
Ich habe folgende frage:
ich möchte folgende CMD-Befehle ausführen:
ausblenden Quelltext
1:
2:
cd C:\Mein_ordner\
Programm.exe -parm1 wert1 -parm2 wert2

wie kann ich dies ausführen über delhpi?
ausblenden Delphi-Quelltext
1:
windows.winexec(pchar(s),1);					

Das kann nur einzeilige scripts


Zuletzt bearbeitet von Georg08 am So 24.05.09 13:40, insgesamt 1-mal bearbeitet
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 24.05.09 13:40 
Batchdatei schreiben und ausführen.
Georg08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155
Erhaltene Danke: 6

Win XP
Delphi 7.0 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 24.05.09 13:42 
user profile iconRobert.Wachtel hat folgendes geschrieben Zum zitierten Posting springen:
..und ausführen.


Da hakts doch. Das Stichwort hierzu lautet "shellexecute".

_________________
Gruß
Hansa
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 24.05.09 13:51 
user profile iconhansa hat folgendes geschrieben Zum zitierten Posting springen:
Da hakts doch. [...]

Woher willst Du das wissen?
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: 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:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
ShellExecute('WieAuchImmerEsHeisst.BeliebigeEndung');					
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: 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.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Georg08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155
Erhaltene Danke: 6

Win XP
Delphi 7.0 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: So 24.05.09 14:43 
ausblenden 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.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 24.05.09 18:30 
user profile iconRobert.Wachtel hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconhansa hat folgendes geschrieben Zum zitierten Posting springen:
Da hakts doch. [...]

Woher willst Du das wissen?


Das war im Kontext doch so zu erkennen.

_________________
Gruß
Hansa
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 24.05.09 19:21 
user profile iconhansa hat folgendes geschrieben Zum zitierten Posting springen:
Das war im Kontext doch so zu erkennen.

Sicher?

user profile iconGeorg08 hat folgendes geschrieben Zum zitierten Posting springen:
[...] ich mache das gerade so, aber ich wollte wissen ob es eine schönere variante gibt...

:mrgreen: