Executando arquivo tipo .bat no delphi XE2

10/01/2013

1

Tenho uma procedure que executar um arquivo . bat e o mesmo me grava um arquivo de log que leio o conteúdo logo em seguida, só que ocorre que me gera uma mensagem de erro informando que o arquivo esta em uso, já tentei algumas formas de contorno o problema sem sucesso,
Agradeço se alguém puder ajudar.

procedure TfrmPrincipal.ExecutaBat;
var
arquivo :string;
begin

If (FileExists('C:\geramd5_' + nomearquivo + '.bat')=True) Then
Begin
arquivo := 'C:\geramd5_' + nomearquivo + '.bat' ;
ShellExecute(handle,'open',PChar(arquivo), '','',SW_SHOWNORMAL);
end;
end;
Responder

Posts

No seu código você testa se o arquivo existe, e depois usa a function ShellExecute para abrir o mesmo certo?. Antes disso você abre ele para grava alguma informação? Se for o caso você pode ter esquecido de fechar o arquivo depois da edição e ele acusa como aberto pelo delphi.
Responder
Também concordo com o Walter.
Pra acessar o arquivo novamente, você precisa garantir que ele esteja fechado.
Ou então é alguma ferramenta dentro do BAT que você está chamando e ela não está sendo finalizada corretamente.
Responder