Danke für die Hilfe,
Die Batch als einen einzigen Prozess zu starten funktioniert bei mir leider nicht da ich die Exitcodes der gestarteten exe-Files auswerten muss.
Delphi-Quellcode:
del C:\Software\sw\report_detail.pdf
copy C:\Software\sw\report.xml C:\Software\sw\protocol.xml
C:\Software\sw\help_program.exe
del C:\Software\sw\report_detail2.pdf
copy C:\Software\sw\report.xml C:\Software\sw\protocol2.xml
C:\Software\sw\help_program2.exe
Mich interessieren jeweils die exitcodes von help_program.exe und help_program2.exe. Würde ich einen einzigen Prozess starten bekomme ich nicht mit wann eine exe fertig ist und wann eine neue startet.
ich habe mein Problem mit den Shell-Bultin-Commands nun wie folgt gelöst:
Delphi-Quellcode:
starti := Pos('del ', strDummy);
if starti = 1 then
begin
//del befehl gefunden, nun comandlineString "zerschneiden"
strConcat := Copy(strDummy, 5,Length(strDummy));
if(FileExists(strConcat))then
DeleteFile(strConcat);
end else if ( Pos('copy ', strDummy) = 1) then
begin
//copy befehl gefunden, nun comandlineString "zerschneiden" um source und destination zu erhalten
strConcat := Copy(strDummy, 6,Length(strDummy));
strConcatSource := Copy(strConcat, 0,(Pos(' ',strConcat))-1);
strConcatDestination := Copy(strConcat, (Pos(' ',strConcat))+1,Length(strConcat));
if(FileExists(strConcatSource))then
CopyFile(PChar(strConcatSource),PChar(strConcatDestination),False);
end else
if not CreateProcess(
nil,
//PChar(CommandLine),
PChar(strDummy),
nil,
nil,
True,
ProPri, // and CREATE_NEW_CONSOLE,
nil,
nil,
StartupInfo,
ProcessInfo)
then begin
Nun wird nur ein eigener Prozess gestartet wenn tatsächlich eine exe gestartet wird. Ich hoffe das ist nun auch performanter.
Darauf, dass ich die del und copy nicht über createprocess aufrufen kann ohne "cmd" davor zu schreiben wär ich nie gekommen.
Merci !