Ir ao conteúdo
  • Cadastre-se

C++ bat para apagar arquivos


Marcos Lachimia
Ir à solução Resolvido por Marcos Lachimia,

Posts recomendados

Boa tarde,

 

Galera, estou com dificuldade sobre como apagar arquivos aqui da empresa que trabalho, hoje a área de trabalho e o documentos ficam no servidor e na maquina do usuário é apenas feito o redirecionamento.

A questão é que a lixeira fica inclusa na área de trabalho e eu gostaria de fazer um bat ou algo parecido para apagar todos os arquivos da lixeira, inicialmente eu criei um bat simples e depois pesquisando vi que o que eu preciso se trata de programação C++.

tenho cerca de 100 pastas de usuário e dentro dessas pasta tem a área de trabalho e o documentos, o que queria era algo que apagasse essas lixeiras sem eu ter que ficar criando um comando para cada pasta de usuário.

O bat que criei até o momento é esse:

 

echo off
rd /s /q G:\dados\usuario\(usuário)\desktop\$Recycle.bin

 

no lugar do (usuário) seriam vários nomes diferentes e o restante é igual para todos.

Existe alguma forma de eu facilitar esse comando para n precisar criar para cada usuário?

 

Obrigado pela atenção.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@bngomes nesse caso seria para a maquina local correto?.....o que eu preciso é para uma unidade do servidor onde cada usuário da empresa tem uma pasta e dentro dessa pasta tem a area de trabalho, é nesse lugar que eu preciso limpar a lixeira, exemplo: \\192.168.0.1\dados\usuarios\BNGOMES\desktop\lixeira ou G:\dados\usuarios\BNGOMES\desktop\lixeira

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

deixa ver se entendi... a Lixeira fica na REDE?

por que pelo que entendo a lixeira em si não fica na pasta da area de trabalho, ali ela é so um atalho.

Ela fica fica "fisicamente" na raiz do disco

 

Citação

The Recycle Bin folder is located in the root directory of the C drive. The root directory is the top-level directory in the file system hierarchy, which contains all of the files and folders on your computer. The Recycle Bin folder is a hidden system folder that is named "$Recycle. Bin"

 

Então esse código deveria funcionar... ja que "Realmente" a pasta fica no computador local usuário.

 

Agora qual seria a necessidade pratica disso? pergunto por que a lixeira é exclui os dados por padrão apos 30 dias.. mas isso pode ser configurado para menos tempo por exemplo...

 

 

 

 

 

De uma olhada nesse artigo tambem:

https://www.groovypost.com/howto/automatically-empty-the-recycle-bin-on-windows-10/

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Realmente, geralmente a lixeira "real" fica em c:\$Recycle.bin

Dentro de  $Recycle.bin tem uma pasta guid de números para cada usuário que existe algo como

C:\Recycle.Bin\S-1-5-21-3501668182-2493466295-2712224610-1001\

 

Para cada usuário tem uma pasta guid assim e dentro dessa pasta ficam os arquivos apagados do usuário específico.

Também cada partição tem sua própria lixeira por exemplo:

c:\$Recyle.bin

d:\$Recyle.bin

e:\$Recyle.bin

 

e assim adiante.

 

Então se você fizer algo assim em um prompt de comando elevado deverá apagar tudo.

 

for %a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%a:" RD /q /s "%a:\$Recycle.Bin"

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

eu também achava que ficava no pc local, mas tive problema de espaço na unidade que ficam os usuários e não encontrava onde era, ai fiz a limpeza da lixeira de alguns pcs e vi que melhorou o espaço em disco do servidor, porém, tenho umas 200 maquinas e n queria fazer manual uma por uma

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

1. Copie o script para pasta Netlogon no controlador de domínio

 

2. Abra o Console de Gerenciamento de Politicas de Grupo

 

3. Siga até: Configurações do Computador\Diretivas\Configurações do Windows\Scripts (Inicialização/Desligamentos

 

4. Clique 2x em Inicialização e nas propriedades clique em adicionar, e adicione o script que você copiou para a pasta Netlogon

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

2 horas atrás, bngomes disse:

deixa ver se entendi... a Lixeira fica na REDE?

 

A rede é uma camada de transporte. NADA fica na rede.

 

2 horas atrás, Marcos Lachimia disse:

\\192.168.0.1\dados\usuarios\BNGOMES\desktop\lixeira ou G:\dados\usuarios\BNGOMES\desktop\lixeira

 

A partir desse exemplo pode escrever seu programa. Um loop só. Pode ser bem mais simples que um batch file. C++ a partir de '17 pode usar o #include <filesystem> então é bem simples fazer isso. Claro que pode ser feito em C ou C# usando FindFirst / FindNext, o comum em Windows. Para rodar pode usar um script de login ou melhor ainda associar ao desligamento das máquinas ou algum horário de baixo uso. Um script de login para apagar arquivos pode enfurecer usuários apressados, e um deles pode ser um diretor 🙂  

 

Entenda que vai precisar de privilégios para isso, e pode ser, se incluir pastas de arquivos temporários, algo bem comum, que precise aceitar alguns erros porque muitos arquivos poderão estar abertos por outros processos

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

consegui fazer o que queria galera, vou deixar o bat a seguir para que possam usar caso precisem.

 

@echo off
cd G:\dados\usuario\
for /D %%i in (*) do (
	if exist "%%i\Desktop\$Recycle.bin" (
		echo Limpando a Lixeira de %%i...
		rd /s /q %%i\desktop\$Recycle.bin
	)
)
echo limpeza concluida.
pause

muito obrigado pela ajuda de todos.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!