natürlich kann man batch dateien direkt aufrufen...
Delphi-Quellcode:
s := ExtractFilePath( Application.ExeName );
coFile.SaveToFile( s + 'update.bat' );
ShellExecute(0, nil, PChar(s+'update'), nil, nil, SW_SHOWNORMAL);
funktioniert einwandfrei, darfst nur beim shellexecute keine dateiendung angeben

...
gruß
reli