Executar este comando no DOS.....
Olá gostaria da ajuda para este problema...tenho executar este comando no meu sistema so que o comando COPY e do DOS...tipo assim :
COPY SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE
legal...
abraço.
fabio
COPY SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE
legal...
abraço.
fabio
Cavalcanti.fabio
Curtidas 0
Respostas
Adriano Santos
06/03/2006
Declare a unit ShellApi no uses.
procedure TForm1.Button1Click(Sender: TObject); var Dados: TSHFileOpStruct; I : Integer; PastaOrigem : String; PastaDestino : String; begin with Dados do begin for I := 0 to ListBox1.Items.Count-1 do begin wFunc := FO_COPY; PastaOrigem := ´C:\´; PastaDestino := ´C:\Temp\´; pFrom := PChar(PastaOrigem + ListBox1.Items[I]); pTo := PChar(PastaDestino + ListBox1.Items[I]); fFlags := FOF_ALLOWUNDO or FOF_FILESONLY or FOF_RENAMEONCOLLISION or FOF_NOCONFIRMATION; SHFileOperation(Dados); end; end; end;
GOSTEI 0
Massuda
06/03/2006
Tem duas formas de fazer isso... você pode usar ShellExecute e pedir para o Windows executar o COPY ou implementar tudo em Delphi.
Para fazer em Delphi, use dois TStringList, use um para conter o resultado (concatenação dos arquivos) e outro para ler cada arquivo (use .LoadFromFile); use .AddStrings para somar o conteúdo de cada arquivo no resultado e finalmente salve o resultado (use .SaveToFile).
Para fazer em Delphi, use dois TStringList, use um para conter o resultado (concatenação dos arquivos) e outro para ler cada arquivo (use .LoadFromFile); use .AddStrings para somar o conteúdo de cada arquivo no resultado e finalmente salve o resultado (use .SaveToFile).
GOSTEI 0
Adriano Santos
06/03/2006
Tem duas formas de fazer isso... você pode usar ShellExecute e pedir para o Windows executar o COPY ou implementar tudo em Delphi.
Para fazer em Delphi, use dois TStringList, use um para conter o resultado (concatenação dos arquivos) e outro para ler cada arquivo (use .LoadFromFile); use .AddStrings para somar o conteúdo de cada arquivo no resultado e finalmente salve o resultado (use .SaveToFile).
Não sei o que deseja fazer, mas dependendo do que for a dica do Massuda ainda está mais simples do que a minha. A minha usa o Shell como pode notar.
GOSTEI 0
Cavalcanti.fabio
06/03/2006
Massuda...legal esta sua ideia...desculpe a minha besteira em perguntar...mas vc poderia ser mais claro...os arquivos de origem são os proprios TXT e o de destino sera em A: com o nome de SEFIP.RE
valeu...
valeu...
GOSTEI 0
Cavalcanti.fabio
06/03/2006
estou usando este comando :
WinExec(PChar(´command.com /c COPY ´+diretoriogeral+´SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE´),SW_SHOWNORMAL);
mas so esta copiando o SFPA00.TXT
o que podera estar acontecendo...
WinExec(PChar(´command.com /c COPY ´+diretoriogeral+´SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE´),SW_SHOWNORMAL);
mas so esta copiando o SFPA00.TXT
o que podera estar acontecendo...
GOSTEI 0
Cavalcanti.fabio
06/03/2006
continuando...onde diretoriogeral e : o:\sistemas\sfpa\
complementando
complementando
GOSTEI 0
Massuda
06/03/2006
Você tem que incluir o caminho (o:\sistemas\sfpa) no nome de cada arquivo da lista (SFPxx.TXT), senão o Windows vai procurar no diretório que seu programa está usando.
GOSTEI 0
Cavalcanti.fabio
06/03/2006
Massuda.
WinExec(PChar(´command.com /c COPY ´+diretoriogeral+´SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE´),SW_SHOWNORMAL);
apos o COPY tem uma variavel diretoriogeral onde esta setado para O:\SISTEMAS\SFPA e apos a variavel esta todos os TXT´s que desejo in cluir dentro de SEFIP.RE que sera gravado em A:\
era esta a sua informação anterior...ou não estou entendendo...
valeu.
WinExec(PChar(´command.com /c COPY ´+diretoriogeral+´SFP00.TXT+SFP10.TXT+SFP30.TXT+SFP32.TXT+SFP90.TXT A:\SEFIP.RE´),SW_SHOWNORMAL);
apos o COPY tem uma variavel diretoriogeral onde esta setado para O:\SISTEMAS\SFPA e apos a variavel esta todos os TXT´s que desejo in cluir dentro de SEFIP.RE que sera gravado em A:\
era esta a sua informação anterior...ou não estou entendendo...
valeu.
GOSTEI 0
Massuda
06/03/2006
O que eu quis dizer é que todos os SFPxx na linha de comando tem que ter o caminho especificado......senão o Windows não sabe onde procurar cada um dos arquivos.
WinExec(PChar(´command.com /c COPY ´+diretoriogeral+´SFP00.TXT+´+diretoriogeral+´SFP10.TXT+´+diretoriogeral+´SFP30.TXT+´+diretoriogeral+´SFP32.TXT+´+diretoriogeral+´SFP90.TXT A:\SEFIP.RE´),SW_SHOWNORMAL);
GOSTEI 0
Cavalcanti.fabio
06/03/2006
Massuda...resolvi utilizando o seguinte comando :
ShellExecute(0,nil, PChar(DirectoryListBox.Directory+´\SFPCopy2.bat´),´´,nil,Sw_shownormal);
onde os arquivos TXT (nomes) estão agora em um .BAT e e executado pelo shell...perfeito...funcionou que foi uma beleza...fez a junção como eu queria dos arquivos...
valeu.
grato,
fabio
ShellExecute(0,nil, PChar(DirectoryListBox.Directory+´\SFPCopy2.bat´),´´,nil,Sw_shownormal);
onde os arquivos TXT (nomes) estão agora em um .BAT e e executado pelo shell...perfeito...funcionou que foi uma beleza...fez a junção como eu queria dos arquivos...
valeu.
grato,
fabio
GOSTEI 0