Nein
Das war ein Beispiel um zu zeigen, das diese nicht ausgeführt werden kann, weil der Name falsch zusammen gesetzt wird.
Deine .Bat behält deinen gewünschten Namen (_DELETE_COPY_EXECUTE.bat).
Du kannst zur Kontrolle auch temporär dir die Zusammensetzung mal ausgeben lassen (hilft evtl. dabei das zu verstehen):
Delphi-Quellcode:
procedure TForm5.pnlUpdateMessageClick(Sender: TObject);
var
ExecResult: Integer
begin
try
ShowMessage(ParamStr(0) + '_DELETE_COPY_EXECUTE.bat'); //nur zum evtl. besseren Verständnis, kann im eigentlichen Code nachher raus!
ShowMessage(ExtractFilePath(ParamStr(0)) + '_DELETE_COPY_EXECUTE.bat'); //nur zum evtl. besseren Verständnis, kann im eigentlichen Code nachher raus!
ExecResult := ShellExecute(0, 'open', 'cmd', PChar('/c ' + ExtractFilePath(ParamStr(0)) + '_DELETE_COPY_EXECUTE.bat'), nil, SW_SHOWNORMAL); //so wäre es richtig, der Dateiname bleibt "_DELETE_COPY_EXECUTE.bat"
if ExecResult <= 32 then
ShowMessage('Fehlercode: ' + IntToStr(ExecResult));
ShowMessage('Alte Version gelöscht.');
except
ShowMessage('Fehler');
end;
end;