sexta-feira, 20 de fevereiro de 2015

Compactar um Arquivo Por Linha de Comando

Olá!

No último post, ensinei como habilitar o serviço de SMTP no Windows Server e como enviar email através dele, com um anexo e tudo mais.

Nesse post, eu vou ensinar como compactar um arquivo utilizando o próprio prompt de comando do Windows, você só precisa de alguns passos! Vamos lá?

Antes de tudo, você precisa baixar o programa 7zip, que é minúsculo (pouco mais de 1Mb) e instalar em seu computador. Após instalar, crie uma cópia do programa na pasta System32 para que o arquivo seja acessado de qualquer nível de diretório no prompt de comando. Para isso, vá até a pasta C:\Program Files\7-Zip copie o arquivo 7z.exe e cole na pasta C:\Windows\System32 e pronto.

Agora, abra o prompt de comando (Winkey + R e digite cmd) e digite 7z. Você verá todos os comandos disponíveis:


Agora, vamos ilustrar uma situação: Você tem um arquivo chamado log.txt. Nesse arquivo está contido um log de uma cópia executada diariamente, e seu chefe pediu para enviar por e-mail para ele conferir. Daí, você vê que esse arquivo tem mais de 20MB e que não dá para enviar por e-mail. E agora? Calma, não criemos pânico! Vamos por partes:

Seria muito trabalhoso todos os dias você gerar essa arquivo manualmente. Veja: conectar no servidor, encontrar o arquivo, clicar com o botão direito, compactar, nomear, e enviar por e-mail. São seis passos e um tempo enorme que você perde.

Agora, se você adicionar na linha de comando da cópia que é executada diariamente mais um comando que faz essa cópia diária, você poupa no mínimo dez minutos do seu dia. Usando o exemplo do post anterior, vou utillizar o arquivo copia.bat:

copy C:\Arquivos\ \\servidor\compartilhamento\Backup\ > C:\Logs\log.txt
C:\enviaemail.vbs

Você precisa compactar o arquivo log.txt. Então, entre as duas linhas você colocará o seguinte comando:

7z a -tzip "C:\log.zip" "C:\Logs"

Detalhando o comando, nós temos:

7z: chama o programa 7zip
a: adiciona arquivos para a pasta compactada
-tzip: Tipo do arquivo, que é zip
Destino: Caminho de destino com o nome do arquivo compactado
Origem: De onde será adicionado o arquivo que estará dentro do arquivo zip.

Agora, você adiciona essa linha de comando entre os dois:

copy C:\Arquivos\ \\servidor\compartilhamento\Backup\ > C:\Logs\log.txt
7z a -tzip "C:\log.zip" "C:\Logs"
C:\enviaemail.vbs

Dessa forma, o seu arquivo será enviado por e-mail sem problemas. Um arquivo que continha cerca de 20MB, agora tem menos que 500KB, e consideramos também que a sua tarefa ficou muito mais automatizada, otimizando a disponibilidade do seu tempo.

Gostou do post? Não deixe de comentar!

Até breve!

8 comentários:

  1. E como faço para dividir o arquivo compactado em vários arquivos? Usando linha de comando. Pois meu email por exemplo não permite arquivos maiores que 1mb anexo ao email. Então tenho que dividi-lo

    ResponderExcluir
    Respostas
    1. Olá Tião!
      Nesse caso, você pode usar o parâmetro
      "-v" para dividir o arquivo. Ficaria assim:

      7z a -tzip -v1024k "destino" "origem"

      Atente-se ao enviar o arquivo por email, pois dessa forma terá que enviar um arquivo dividido por vez.

      Excluir
  2. Amigo, boa noite, excelente dica que você postou aqui, me ajudou muito, acredito que tenha ajudado outras pessoas também. Muito obrigado.

    ResponderExcluir
  3. Parabéns por esse How-two ajudou e muito!

    ResponderExcluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir
  5. Boa tarde amigo,

    Sabe como consigo dar um nome para o arquivo ser salvo por exemplo com um nome especifico ou data do dia?

    ResponderExcluir