sexta-feira, 17 de junho de 2011

Desocultando arquivos ocultados por vírus no Windows

Essa postagem deveria ter sido feita desde o ano passado, só que por algum motivo eu sempre esquecia. Então encontrei um arquivo texto no meu computador que tinha alguns comandos para Windows e lembrei de postar aqui.

Em uma época distante (não muito distante, ano passado) os desktops dos usuários de onde eu trabalhava pegaram um vírus muito chato. Ele ocultava arquivos e pastas e no lugar deles, criava um atalho com o nome desses mesmos arquivos. Só que o atalho era para o próprio vírus, que acabava fazendo a mesma coisa e por aí não terminava nunca. Se o usuário não soubesse a sutil diferença que um atalho tem em relação a um arquivo comum (aquela setinha do lado esquerdo do ícone), ele clicava no atalho e piorava a situação.


Também acontecia muito em pen drives e aí que eu comecei a procurar uma soluçãopara desocultar esses arquivos. Porque mesmo que você visse o arquivo oculto, não era possível desocultá-lo clicando com o botão direito nele e indo em propriedades, a caixa de seleção ficava indisponível.

Bom, a solução é:

Abra o CMD
Entre na pasta com o comando CD nome_completo_da_pasta
Digite attrib -A -S -R -H /S /D
Depois disso, os arquivos estarão visíveis novamente.
Caso esteja na raiz de algum HD ou na raiz o pen drive mesmo, abra o bloco de notas e copie isso nele:

echo off
cls
set /p uni=Digite a letra da unidade ou 0 para encerrar:
if %uni% EQU 0 exit
set pen=%uni%:
%pen%
echo Desocultando arquivos e pastas, aguarde...
attrib -A -S -R -H /S /D
echo Desocultamento de arquivos finalizado!
pause

Salve como desocultar_arquivos.bat e execute-o. Ao abrir ele mostrará o seguinte:
Digite a letra da unidade ou 0 para encerrar:

Digite apenas a letra da unidade, sem os dois pontos. C, D, E e não C: ou C:\.
Aguarde um momento e quando terminar, o script mostrará a seguinte informação:
Desocultamento de arquivos finalizado!
Pressione qualquer tecla para continuar...

Após isso os seus arquivos não estarão mais  ocultos naquela pasta.

Atualização

Em um dos comentários, pediram para eu explicar o script. Achei uma boa idéia, então farei a explicação de cada linha dele. Porém explicarei apenas o que significa nesse script, alguns comandos tem várias utilidades além das citadas aqui.

1 - O comando echo off significa que ele não vai ficar mostrando a linha que está executando o prompt, no caso o "C:\Users\Usuario>". No caso ele só mostrará o resultado dos comandos digitados.

2 - cls serve para limpar a tela, útil usar depois do echo off para deixar a tela limpa para executar o resto do script.

3 - O "set /p uni" serve para criar a variável "uni" e já mostrar um texto para o usuário digitar o valor da variável.

4 - O if serve para testar a condição, no caso se a pessoa digitar o valor 0, ela sai do script, caso contrário continuará no script, sendo assim a pessoa vai digitar a letra da unidade que quer fazer o desocultamento das pastas.

5 - Esse comando é um pouco desnecessário, só fiz atribuir uma variável e os dois pontos a outra variável. Funcionaria sem ela se eu colocasse apenas na próxima linha "%uni%:".

6 - Entro na unidade que quero desocultar as pastas, se a pessoa tivesse digitado "D" no início do script, então entraria na unidade D:\.

7 - O echo é só pra mostar uma informação para o usuário enquanto o desocultamento está sendo realizado.

8 - Nesse comando temos várias opções. O attrib serve para adicionar ou remover atributos para uma pasta ou arquivo. Vamos para cada um deles. Lembrando que o sinal de + serve para adicionar o atributo e o sinal de - para remover o atributo.
A - Atributo de arquivo morto, usado para backups (não vem ao caso explicar, mas é fácil encontrar explicações)
S - Atributo de arquivo de sistema
R - Atributo de somente leitura
H - Atributo de arquivo oculto
/S - Definir os atributos em arquivos localizados em subpastas
/D - Definir atributos para pastas também

9 - Echo

10 - Pause serve para que a tela fique aguardando o usuário apertar alguma tecla para encerrar o script. É útil quando existe alguma informação na tela para que o usuário leia antes da janela ser fechada.

Nesse caso, onde tem o sinal de - serve para remover esses atributos e então será possível tanto visualizar os arquivos e pastas quanto apagá-los ou editá-los.