Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
Coisas simples como, por exemplo, gerar uma lista dos arquivos de uma pasta pode se tornar um pesadelo para os mais novos, principalmente para quem aprendeu a usar o computador j na era do Windows. Exagero? Definitivamente "no"! Pesquisando no Google, nossa equipe tcnica percebeu que muitas dificuldades enfrentadas por usurios menos experientes podem ser resolvidas facilmente com alguns comandos do velho e bom MS-DOS. Isso mesmo! Pode parecer loucura, mas scripts feitos no bom e velho modo texto podem ser ainda muito teis nos dias de hoje.
Entenda o que so Batch Files Batch files (arquivo de lotes), so arquivos no formato texto que contm comandos do MS-DOS. Os comandos so executados em sequncia, um por um, at o fim do arquivo. Batch Files fornecem uma maneira fcil de automatizar tarefas e, at mesmo, de auxiliar na execuo de sequencias tediosas de trabalho. Apesar de ser basicamente um arquivo texto, um batch file s se torna executvel pelo sistema quando sua extenso nomeada para .BAT (tradicional) ou para .CMD (extenso suportada por sistemas operacionais baseados no Windows NT).
Voc precisa apenas de um editor de textos simples para escrever os comandos. O "Bloco de notas do Windows" ("Notepad") excelente. No recomendamos usar aplicativos do tipo Office. Primeiro porque so pesados, segundo que porque corre-se o risco de voc esquecer de mudar o tipo de arquivo para "Somente texto" quando for salvar seu "Batch file". Lembre-se que o interpretador de comandos s aceita arquivos texto puros (ASCII). Outro detalhe que os comandos podem ser escritos com letras minsculas ou maisculas. O interpretador no faz distino capitular. Por fim, tenha o hbito de guardar seus scripts em um nico local. No nosso caso, criamos uma pasta chamada "batch" no diretrio raiz da unidade C ("c:\batch"). Iremos assumir, para todos os scripts, que voc fez exatamente a mesma coisa. Em seguida, adicione esse diretrio 1 varivel de ambiente "Path" (caminho) em "Painel de Controle / Sistema". Em "Propriedades do Sistema", clique na aba "Avanado" e, em seguida, clique no boto "Variveis de Ambiente".
1 de 6
07/07/12 20:09
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
Em seguida procure, no painel inferior, pela entrada "Path". Adicione ponto-vrgula ao final da string (sequncia de texto que define esta varivel) e escreva o caminho completo do diretrio que conter seus arquivos .BAT. Se voc est seguindo nosso exemplo, basta adicionar ao final da string a sequncia ";c:\batch" (sem aspas).
Isso far com que seus scripts possam ser executados de qualquer lugar, sem que haja a necessidade de copiar os arquivos .BAT para o local da execuo ou informar caminhos extensos no "Prompt de comando". A partir de agora, o sistema operacional ir incluir o diretrio dos seus scripts na lista de locais que devem ser pesquisados para se executar algum programa ou utilitrio. Ou seja, agora possvel chamar o seu batch file diretamente de "Iniciar / Executar" apenas escrevendo o nome do arquivo. No mais necessrio escrever o caminho inteiro. O sistema j sabe onde procurar por ele. O diretrio "c:\batch" tornou-se uma espcie de tool Box (caixa de ferramentas) que guarda todos os seus scripts.
2 de 6
07/07/12 20:09
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
Digite o comando (nome do batch file) e, em seguida, um nome para o atalho (como ele ir aparecer no menu de contexto).
Agora, ao clicar em uma pasta, voc poder envi-la como argumento para seu script a partir do Windows Excplorer.
3 de 6
07/07/12 20:09
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
Cdigo Comentado @echo off Esta linha desativa o eco de comando. Por padro, o MS-DOS repete na tela um eco do comando dado. No nosso caso, no queremos que o eco seja exibido por uma questo de "esttica". Isso vlido quando "listadir.bat" for executado diretamente a partir do prompt de comando. Quando executado de dentro do Windows, a nica coisa que se v a tela do "Prompt de Comando" piscando. A instruo @ na frente do comando "echo" instrui o interpretador de comandos a tambm no exibir o eco de "echo". Ao encerrar o batch file, echo volta ao padro definido pelas variveis de ambiente. dir /b %1 /o:g >c:\batch\listadir.txt DIR o comando que lista diretrios e arquivos no "Prompt de Comando". O argumento /b indica que a listagem deve ser simples (sem informaes de tamanho de arquivo, data, etc). J o argumento %1 uma varivel responsvel por "receber" o nome do diretrio selecionado para listagem. O filtro /o:g uma opo do comando dir que coloca os nomes de diretrio no topo da listagem. Por fim, o caractere > um pipe (direcionamento) para onde a sada do comando deve ser enviada. No nosso caso, para o arquivo "listadir.txt" dentro do diretrio "c:\batch". Caso omitido, usada a sada padro, que na tela. Para mais informaes e opes para o comando dir basta digitar, no "Prompt de Comando", dir /? <enter> Ou simplesmente help dir <enter>.
Cdigo Comentado @echo off Ver explicao no exemplo anterior. SET PATH=%PATH%;C:\Program Files\7-Zip Adiciona, varivel de ambiente "Path", o caminho para o executvel do 7-Zip. Isso se faz necessrio para que, quando o programa seja chamado, o sistema saiba onde procur-lo. for %%f in (*.pdf) do 7z a -tzip -mx=9 "%%f".zip "%%f" O Comando For instrui o shell a executar o comando 7z a -tzip -mx=9 "%%f".zip
4 de 6
07/07/12 20:09
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
"%%f" para cada arquivo pdf encontrado no diretrio onde o batch for executado. O parmetro %%f a varivel que armazena o nome do arquivo a cada execuo do comando for. Desta forma, digamos que o primeiro arquivo encontrado chame-se "abc.pdf" e o segundo arquivo seja o "def.pdf". Na primeira passagem, o parmetro %%f ser substitudo por "abc.pdf". Na segunda, por "def.pdf" e assim por diante. Os arquivos resultantes da operao se chamaro "abc.pdf.zip", "def.pdf.zip", etc... No se assuste com a quantidade de parmetros do compactador 7zip. Eles apenas definem as configuraes de compresso e formato de arquivo. Se voc no quiser usar o 7zip para realizar a tarefa, voc pode usar o WinRAR ou qualquer outro compactador que suporte linha de comandos. No caso do WinRAR seu batch ficaria assim: @echo off SET PATH=%PATH%;C:\Program Files\WinRAR For %%f in (*.pdf) do RAR a "%%f".rar "%%f"
:funcREMOVEFN SETLOCAL
5 de 6
07/07/12 20:09
http://www.superdownloads.com.br/materias/fazendo-magica-batch-file...
Cdigo Comentado Este batch file contm muitos dos recursos mais avanados dos batch files. Voc deve ter percebido os dois-pontos ("::") iniciando as primeiras linhas. Cada linha iniciada desta forma significa que ela , na verdade, um comentrio. Portanto, ignorada pelo interpretador de comandos. Os comentrios servem para ajudar a identificar informaes importantes dentro de um programa. Por exemplo, na linha onde est o exemplo de uso, fica fcil identificar o que o batch realmente faz. Ele recebe dois parmetros. O primeiro deles, a seleo de arquivos. No caso, arquivos MP3. O segundo argumento indica que deseja-se remover a string "Black Sabbath? dos nomes de arquivo. Por exemplo. Suponhamos que voc tenha uma coleo de arquivos MP3 do Black Sabbath. Cada arquivo est nomeado com o nome da banda seguido do nome da msica. Digamos, agora, que voc queira deixar apenas o nome da msica. Basta executar o Batch com o parmetro a ser removido que ele far o servio para voc. Se voc acompanhou os exemplos anteriores com ateno, voc perceber que no difcil entender o que est acontecendo aqui. De qualquer forma, iremos explicar o que h de novo neste batch. a) Os parmetros numerados "%1" e "%2" recebem, respectivamente, os argumentos relativos a quais arquivos devem ser alterados e qual a string a ser removida. b) Dentro do for, h uma chamada para uma funo chamada ":funcREMOVEFN". O "Call" repassa os argumentos obtidos atravs da linha de comando para esta funo. c) As palavras-chave SETLOCAL e ENDLOCAL indicam que as variveis criadas s so vlidas neste bloco de cdigo. boa prtica de programao blocar instrues quando se deseja trabalhar com funes. Evita que parmetros errados sejam passados. d) Dentro da funo as variveis devem ser passadas no com %1 ou %2 (como na parte anterior do cdigo). Para que uma funo receba algo, necessrio incluir o cararctere til ("~"). e) A instruo CALL SET NEWFILENAME=%%FILENAME:%STRING%=%% cria uma nova varivel que armazena o novo nome de arquivo j sem a string indesejada. Repare que aps o sinal de igual no h nada, apenas dois sinais de percentual que servem para blocar a instruo. Se voc quiser modificar esse batch para aceitar um terceiro parmetro (por exemplo, para substituir a string indesejada por uma outra qualquer), basta passar o parmetro aps o sinal de igual ("=").
6 de 6
07/07/12 20:09