Usuário com melhor resposta
Deletar conteúdo de sub pastas

Pergunta
-
Boa Tarde, aqui na empresa temos um diretório para os usuários guardarem seus arquivos no servidor, cada usuário possui uma pasta própria. É mais ou menos assim: C:\Usuarios\usuarioX.
Preciso de um script (de preferência .bat) que limpe as pastas de todos os usuários. Atualmente utilizo o seguinte:
@echo off
echo Apagando arquivos...
cd C:\Teste
del /F /S /Q *.*Só que este deleta somente o arquivos e não deleta as pastas criadas pelos usuários dentro das suas pastas. Exemplo:
C:\Usuarios\usuarioX\nova pasta\teste.txt
esse script vai deletar somente o arquivo "teste.txt" e eu preciso que delete também "nova pasta".
Agradeço se alguém poder me ajudar.
Respostas
-
Alef,
A sua primeira postagem não informava que eram vária pastas que não deveriam ser apagadas, seguindo este seu último exemplo ainda usamos o FORFILES mas dentro de um FOR que vai ler cada pasta dentro de C:\Usuários.
for /f "tokens=*" %%U in ('dir /b "c:\Usuarios\"') do ( forfiles /P c:\Usuarios\%%U /c "cmd /c del @path /q & rd @path /s /q" )
Veja, o dir /b vai gerar uma lista de cada subpasta de c:\usuários (são as pastas que você não quer apagar), então eu rodo o FORFILES para cada pasta desta lista.
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator terça-feira, 25 de março de 2014 18:28
Todas as Respostas
-
Olá,
Tente o comando RD , com parâmetros S e Q, por exemplo:
@echo off
echo Apagando arquivos...c:\
rd C:\Teste\ /S /Q
md c:\teste
echo Procedimento concluido...
pause
Edinaldo Oliveira Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. ** -
-
Neste caso acho que vai precisar de um script mais elaborador, pois ele vai ter que que deletar várias subpastas com nomes diferentes...vamos ver se outro colega pode ajudar...
Edinaldo Oliveira Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. ** -
Veja se este link ajuda:
Apagar arquivos e pastas com um bat diariamente
Exemplo:
forfiles /P c:\temp /c "cmd /c del @path /q & rd @path /s /q"
Fábio de Paula Junior
- Sugerido como Resposta Edinaldo Junior quinta-feira, 13 de março de 2014 17:06
-
-
Ainda não atingi o resultado esperado..
Acredito que deverei criar uma rotina para percorrer os dirtórios e testar se a pasta é raiz de algum usuário, se for eu devo entrar e limpar o local. Ou utilizar variáveis do sistema, pois existe mais de 200 pastas com nomes de usuários dentro da pasta "Usuários".
C:\Usuarios\usuarioX\(conteúdo a ser deletado)
C:\Usuarios\usuario2X\(conteúdo a ser deletado)
C:\Usuarios\usuario7X\(conteúdo a ser deletado)
C:\Usuarios\usuario10X\(conteúdo a ser deletado)
...
- Editado Alef_NP quarta-feira, 19 de março de 2014 11:24
-
Alef,
A sua primeira postagem não informava que eram vária pastas que não deveriam ser apagadas, seguindo este seu último exemplo ainda usamos o FORFILES mas dentro de um FOR que vai ler cada pasta dentro de C:\Usuários.
for /f "tokens=*" %%U in ('dir /b "c:\Usuarios\"') do ( forfiles /P c:\Usuarios\%%U /c "cmd /c del @path /q & rd @path /s /q" )
Veja, o dir /b vai gerar uma lista de cada subpasta de c:\usuários (são as pastas que você não quer apagar), então eu rodo o FORFILES para cada pasta desta lista.
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator terça-feira, 25 de março de 2014 18:28
-