O "!"/run não leva todos os caracteres?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

jorgewagner
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 24 Jan 2007 14:31
Localização: Petrópolis - RJ

O "!"/run não leva todos os caracteres?

Mensagem por jorgewagner »

Olá gente,


Minha primeira postagem aqui e é pra tirar uma dúvida:

Estou fazendo um programa de backup que tem que excluir todo o conteúdo do diretório e copiar novos arquivos para ele.

Simples: "! del c:\temp\*.* /q" . O "/q" é para não confirmar a exclusão do arquivo.

Aí está meu problema: toda vez que eu executo o DOS dá o erro "Opção inválida /q". Daí que eu acho que o "!" não leva todos os caracteres (algum conflito com o ponto de *.*?).

Testei com o run, delete file do próprio Clipper e nada. Todos os testes foram no Windows XP.

Alguma sugestão?

Jorge Wagner
24/01/2006|15:01
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Tenta jogar o comando DOS completo numa variável e executa o RUN (!) na variável... tipo...

mDEL = "del c:\temp\*.* /q"

! &mDEL // ou
run &mDEL

Detalhe:
O "*.*" pode ser substituido por apenas "." tipo...
"del c:\temp\. /q"
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
jorgewagner
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 24 Jan 2007 14:31
Localização: Petrópolis - RJ

Mensagem por jorgewagner »

Não deu certo. Testei com os dois e ocorreu o mesmo problema de "opção inválida /q".
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Vc já testou SEM o "/Q" ?? Se não me falha a memória, quando o comando é dado via PRG o DOS não questiona... Eu tenho uma rotina semelhante tbm para BKP e não utilizo o "/Q" e dá certo...

Tenta aí SEM o"/Q"
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Dércio_Luiz_Zanatta
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 11 Jan 2006 15:37
Localização: Ibirubá - RS

Mensagem por Dércio_Luiz_Zanatta »

Cara...
Isso ai é um problema dos comandos do clipper com Windows XP. Tive um problema parecido com isso. Eu usava RUN COPY /Y e dava opção inválida no /y..
Consegui resolver este problema usando as funções de tratamento de diretórios e arquivos da CA-TOOLS. No seu caso tente usar o DELTEFILE() DA CA-TOOLS. Deve funcionar..
Um abraço
jorgewagner
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 24 Jan 2007 14:31
Localização: Petrópolis - RJ

Mensagem por jorgewagner »

Augusto escreveu:Vc já testou SEM o "/Q" ?? Se não me falha a memória, quando o comando é dado via PRG o DOS não questiona... Eu tenho uma rotina semelhante tbm para BKP e não utilizo o "/Q" e dá certo...

Tenta aí SEM o"/Q"
Sem o "/q" o DOS pede a confirmação para apagar os arquivos (s/n).
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá,

Você pode usar FErase( arquivo ) também, que não pede confirmação.

Para apagar todos do diretório:

Código: Selecionar todos

ADir( "*.*", "matriz" )

for i := 1 to Len( matriz )
  FErase( matriz[i] )
next i
Não testei mas deve funcionar.

De qualquer modo é por aí o caminho...
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O que eu uso e sempre funciona:

Código: Selecionar todos

DelFiles("c:\temp\teste\*.*")

--------------------------------
function DelFiles(cFullPath)
local cPath := SubStr(cFullPath,1,RAt("\",cFullPath))
AEval(Directory(cFullPath),{|aFiles|FErase(cPath+aFiles[1])})
return nil
[]'s
Maligno
http://www.buzinello.com/prg
jorgewagner
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 24 Jan 2007 14:31
Localização: Petrópolis - RJ

Mensagem por jorgewagner »

Stanis Luksys escreveu:Para apagar todos do diretório:

Código: Selecionar todos

ADir( "*.*", "matriz" )

for i := 1 to Len( matriz )
  FErase( matriz[i] )
next i
Não testei mas deve funcionar.
Olá,

FErase() funcionou. Obrigado a todos.
Responder