Hola,
Podrías hacerlo de varias formas, puesto que, en esencia, un archivo BAT no es más que un archivo, ¡con la extensión BAT!
Me decantaría, así, a bote pronto, por usar la clase "TStrings", pues cuenta con métodos "LoadFromFile" y "SaveToFile", entre otros, que nos ponen las cosas más o menos sencillas:
Código Delphi
[-]
procedure CrearArchivoBat(rutArchivo: string);
var
temp: TStrings;
begin
temp := TStringList.Create;
try
temp.Add('@echo off');
temp.Add('cls');
temp.Add('continúa tú...')
temp.SaveToFile(rutArchivo);
finally
temp.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CrearArchivoBat('C:\archivo.bat');
end;