Mochen!
Delphi-Quellcode:
batchname := Pfad_Lokal+'Update.bat';
FileSetAttr(Pfad_Lokal+'TTS_Starter.exe', 0);
batchfile := TStringList.Create;
with batchfile do
begin
try
Add('@Echo off');
Add(':Label1');
Add('del "'+Pfad_Lokal+File1+'"'); //Löscht die alte Datei
Add('copy "' + Pfad_Netz + File1 + '" "' + Pfad_Lokal + File1 + '"'); //Kopiert die Neue
Add('if not Exist "' + Pfad_Lokal + File1 + '" goto Label1'); //Prüft, ob sie vorhanden ist
Add(Pfad_Lokal + File1); //Startet sie
Add('del ' + batchname); //und löscht die BAT
SaveToFile(batchname);
ChDir(ExtractFilePath(Application.ExeName));
WinExec(PChar(batchname), SW_HIDE); //BAT starten
finally
batchfile.Free;
end;
Halt; //Programm beenden
end;
Kann man dem batch file eine Pause geben bevor es das alte File löscht? Ich bekomm immer den Fehler: keinen Zugriff weil die Anwendung noch läuft und daher nicht gelöscht werden kann.
WAIT und SLEEP scheint es nicht zu geben im Batch code.