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.