Batch delete: acesso negado

10

Estou tendo problemas com o comando del em um arquivo em lotes. Quando chega na etapa de exclusão, recebo a mensagem "Acesso negado". Meu comando em lote é parecido com isto.

set destPath=\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd

Eupossonavegaratéodiretórioeexcluirosarquivossemproblemasno Windows Explorer .

Eu tentei executar como administrador, mas ainda assim o mesmo problema.

    
por agradl 07.12.2011 / 20:57

3 respostas

6

Para forçar um comando del a excluir arquivos somente leitura, adicione o /F flag.

Aparentemente, um arquivo somente leitura normalmente não pode ser excluído por um arquivo em lote, embora ainda possa ser excluído por meio do Windows Explorer . Para verificar se seu arquivo é somente leitura, clique com o botão direito do mouse no arquivo e selecione Propriedades ou digite attrib <filename> no prompt de comando. Isso mostrará uma série de letras correspondentes a diferentes atributos de arquivo.

R = Read-only file
A = Archive file
S = System file
H = Hidden file

Você pode remover a tag somente leitura desmarcando a caixa na janela de propriedades ou executando o comando attrib <filename> -R .

    
por 07.12.2011 / 21:03
2

Depois de experimentar as opções disponíveis para o comando "del", descobri que os arquivos que eu estava tentando excluir eram somente leitura. Para resolver o problema, eu poderia editar os arquivos para remover o atributo somente leitura ou especificar a opção / F.

O script final é

set destPath=\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd

Solução simples, mas uma mensagem de erro enganosa. Espero que isso ajude alguém.

    
por 07.12.2011 / 21:13
1

O que funcionou para o meu PC com Windows 8.1:

Antes de mais nada, feche o Windows Explorer em:

Pressione Ctrl + Alt + Del para abrir Gerenciador de Tarefas , vá para processos, encontre o Windows Explorer , clique com o botão direito e finalizar tarefa . Não se preocupe se a barra de início desaparecer e outra coisa. Use Alt + Tab para percorrer os arquivos. Então, em Gerenciador de Tarefas clique em Arquivo e Executar nova tarefa , e digite cmd . Isso abrirá uma linha de comando .

Dentro do Terminal :

Se a sua versão é de 32 bits, e é no meu caso, ela está localizada em Program Files (x86) , então você deve digitar:

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll

Isso foi para cancelar o registro.

Você pode percorrer os diretórios usando cd directoryname e pode recuperar um diretório por cd .. . Para visualizar o que está em um diretório, você pode digitar dir em quando estiver nesse diretório. Para excluir o tipo de arquivo:

del /F filename

Depois disso, abra novamente o Gerenciador de Tarefas , vá para Arquivo e execute explorer . Desta forma, você terá a exibição habitual. Vá para a pasta Git da qual queríamos nos livrar e excluí-la simplesmente.

Espero que isso funcione para outras pessoas que estão usando o Windows 8.1.

    
por 06.08.2015 / 19:35