Página 1 de 1

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

Enviado: 24 Jan 2007 14:54
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

Enviado: 24 Jan 2007 15:12
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"

Enviado: 24 Jan 2007 15:18
por jorgewagner
Não deu certo. Testei com os dois e ocorreu o mesmo problema de "opção inválida /q".

Enviado: 24 Jan 2007 15:44
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"

Enviado: 24 Jan 2007 16:13
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

Enviado: 24 Jan 2007 16:21
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).

Enviado: 25 Jan 2007 03:12
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...

Enviado: 25 Jan 2007 08:38
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

Enviado: 25 Jan 2007 08:55
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.