Con la ayuda de todos ustedes me funciono de esta manera:
Código:
procedure CrearArchivoBat(rutArchivo,Contenido: string);
var
temp: TStrings;
begin
temp := TStringList.Create;
try
temp.Add(Contenido);
temp.SaveToFile(rutArchivo);
finally
temp.Free;
end;
end;
procedure TForm_Menu.respaldarClick(Sender: TObject);
begin
CrearArchivoBat(ExtractFilePath(Application.ExeName)+'Respaldos_SAT\RespaldoBDSAT.bat', 'c:\mysql\bin\mysqldump -uroot -d bdsat > C:\Archiv~1\Klariu~2\SAT\Respaldo_BDSAT_Vacia.sql'); //Este procedimiento contiene la ruta donde se guardara el archivo.bat y el otro parametro es lo que va a contener el archivo.bat
shellexecute(Handle, 'open','E:\Hidalis\proyecto SAT\Respaldos_SAT\RespaldoBDSAT.bat',nil,nil,SW_SHOWNORMAL);
// winexec('E:\Hidalis\proyecto SAT\Respaldos_SAT\RespaldoBDSAT.bat',SW_SHOWNORMAL); el winexec tambien funciona como el shellexecute, lo coloque para supieran las dos formas de hacerlo.
end;
procedure TForm_Menu.restaurtarClick(Sender: TObject);
begin
CrearArchivoBat(ExtractFilePath(Application.ExeName)+'Respaldos_SAT\RestaurarBDSAT.bat','c:\mysql\bin\mysql bdsat2 < C:\Archiv~1\Klariu~2\SAT\Respaldo_BDSAT_Vacia.sql');
winexec('E:\Hidalis\proyecto SAT\Respaldos_SAT\RestaurarBDSAT.bat',SW_SHOWNORMAL);
//EL COMANDO SHELLEXECUTE TAMBIEN FUNCIONA EN ESTA PARTE
end;
Muchas gracias por su si no entienden el codigo pregunten por favor