Você está na página 1de 12

Tutorial Batch (Todos os niveis)

Ol galera! Ha uma semana estava fazendo este tpico e finalmente chegou a hora de postar! Tutorial de programao em Batch (todos os nveis) Contedo 1. Introduo 2. Variveis 2.1. Recortar uma Varivel 3. Looping 4. Comando IF 5. Comandos bsicos 6. Shutdown 7. Call 8. Parmetros 9. Shift 10. Attrib 11. Re-direcionadores 12. Manejo do Registro (Cuidado usando mal o regedit pode provocar at o colapso do sistema) 12.1. Adicionar chave ao registro 12.2. Apagar chave do registro 12.3. Consultar chave do registro 12.4. Exportar arquivo .reg de uma chave 12.5. Importar um arquivo .reg ao registro 12.6. Comparar duas chaves do registro 13. errorlevel 14.AT 15.SUBST 16.ASSOC 17.CACLS 18.Setlocal e Endlocal 19. FOR 20. Comprimir e Descomprimir arquivos se tivermos o Winrar instalado 20.1. Para comprimir arquivos 20.2. Para descomprimir arquivos 21.modificar tamanho do console 21. modificar tamanho do console 22. Ativar ou desativar o firewall do Windows 23. Tabelas 24. Comandos de rede 25. Fazer com que o bat espere um tempo 1. Introduo Batch uma linguagem scripting, e para sua utilizao utilizamos o console do Sistema do Windows (DOS). As linguagens do tipo scripting, utilizamos para escrevermos script Scripts so utilizados para automatizar tarefas. Para iniciarmos no mundo batch somente necessitaremos um programa o bloco de Notas, ou qualquer outro que edite arquivos de texto, (por favor, no usar o Word, nem similares) um muito bom tambm o notepad++ ou editpad que o mesmo que uso. Antes de iniciarmos a criao dos nossos scripts vamos aprender a utilizar o console, este vai ser o que interpretar os cdigos que digitaremos. Para abrir o console vamos ao Menu iniciar>executar (ou use a tecla do logotipo do Windows + r), ali escreveremos cmd.exe e depois Enter. Foi aberta uma janela negra, com um sublinhado piscando este o cursor, a direita do cursor temos o Prompt: C:\Documents and Settings\Administrator>_ O Prompt nos mostra onde estamos localizados virtualmente, o que vemos um caminho e um >, o > nos diz que terminou o caminho e comea a ordem que ns escreveremos. O caminho esta composto por [unidade]:\diretrio\... Os dois pontos dizem que o anterior a unidade de disco, no meu caso C e o que segue so os diretrios delimitados por uma barra invertida \ no confunda com /. As ordens que ingressarmos ao console, estaro compostos do seguinte maneira [Comando] [Parmetros] Agora vamos fazer que abaixo do Prompt seja escrita uma linha que diga Web Cheats, para fazer isso escreveremos: echo Web Cheats Neste caso echo o comando e Web Cheats so os parmetros (seriam dois parmetros, os parmetros so delimitados por espao, um espao indica onde termina um parmetro e comea outro) O comando Echo mostra um texto e tambm oculta a visualizao do Prompt. Para ocultar o Prompt escreveremos echo off , para visualizar echo on. Para deixar uma regio em branco escreveremos echo. (sem aspas) Para obter a ajuda de um comando, escreveremos Comando /? H dois tipos de comandos os internos e os externos, os internos so todos os comandos que vm integrados com o console e os externos so arquivos que funcionam como comandos. Para obter a lista dos comandos internos, escreveremos o comando Help.

Comando /? H dois tipos de comandos os internos e os externos, os internos so todos os comandos que vm integrados com o console e os externos so arquivos que funcionam como comandos. Para obter a lista dos comandos internos, escreveremos o comando Help. Agora com toda esta teoria, comeamos a criar nossos scripts. Vamos ao bloco de Notas, e escreveremos o seguinte: echo Web Cheats pause E salvamos como *. bat, onde est * vai ser o nome do arquivo que queremos [assim que se salva um script batch]. Depois buscamos o arquivo.bat e lhe damos duplo click. E foi aberto o console dizendo Web Cheats, e abaixo pressione uma tecla para continuar., ao pressionarmos uma tecla termina a janela. O comando Pause serve para inserirmos uma pausa, e no deixar que continue o script, se no estivesse o script se fecharia, pois no existiriam mais ordens abaixo o script finaliza. Esta foi uma demonstrao de um script. Agora voltemos ao console. Para mover-nos entre os diretrios usaremos o comando cd Ex.: Ir a uma pasta anterior usa-se: cd.. Ir ao disco raiz usamos: cd\ Ir a uma pasta dentro do que estamos usamos: cd pasta Ir a um caminho especifico usamos: cd Disco:\diretrio\Subdiretrios Para listar diretrios usamos o comando dir, para ver os parmetros escrevemos no console dir/? E nos Dara a ajuda deste comando. Por exemplo, para ver os arquivos que temos no desktop primeiro vamos ao desktop Usamos cd desktop e depois escrevemos dir /a 2. Variveis Para ver todas as Variveis usamos o comando set Se escrevermos set e depois Enter veremos todas as Variveis. Estas so as Variveis mais usadas: %ALLUSERSPROFILE% C:\Documents and Settings\All Users (caminho da pasta com a configurao para todos os usurios) %APPDATA% C:\Documents and Settings\ {usurio} \Dados de aplicativos (caminho da pasta com Dados de aplicativos) %COMPUTERNAME% nome do equipamento (nome do equipamento) %COMSPEC% C:\Windows\System32\cmd.exe (caminho do interpretador de comandos) %HOMEDRIVE% unidade onde esto os dados do usurio (C:) (unidade onde se encontram os dados de usurio) %HOMEPATH% \Documents and Settings\{usurio} (caminho a pasta do usurio atual) %USERPROFILE% C:\Documents and Settings\{usurio} (Incluindo unidade) %PATH% C:\Windows\System32\;C:\Windows\ (caminhos onde se buscam executveis) %PATHEXT%%%%. COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH; (extenses de arquivo executveis) %PROGRAMFILES% C:\arquivos de programa (caminho da pasta arquivos de programa) %PROMPT% $P$G (Formato do interpretador de comandos) %SYSTEMDRIVE% C: (unidade onde est instalado Windows) %SYSTEMROOT% e %WINDIR% C:\Windows (contem a pasta do Windows) %TEMP% e %TMP% C:\DOCUME~1\{usurio}\LOCALS~1\Temp (caminho da pasta Temp) %USERNAME% Ex. Computer (nome de usurio atual) %DATE% 19/11/2010 (data atual) %TIME% 00:00:00,00 (Hora atual) %CD% C:\ (pasta atual com seu caminho completo) %errorlevel% 0 ou 1 (Cdigo de sada do comando anterior) %RANDOM% 32767 (Nmero aleatrio de 0 a 32767) As Variveis nos servem para indicar um valor que pode ser um numero um caminho ou o que queremos, onde escrevemos a varivel estamos escrevendo na realidade o valor da Varivel. A varivel se escreve com %% exemplo para indicar a varivel homepath escreveremos %homepath%. Por exemplo, podemos listar o contedo do desktop sem estar nele, usando: Dir /a "%homedrive%%homepath%\desktop", por precauo sempre que nos referimos a um caminho usaremos aspas duplas "". Para definir uma varivel fazemos Set Vari_vel=valor Vari_vel o nome da nossa varivel e em valor o que queremos que seja a Varivel No bat para que na varivel o usurio defina o valor fazemos:

Vari_vel o nome da nossa varivel e em valor o que queremos que seja a Varivel No bat para que na varivel o usurio defina o valor fazemos: Set /p Varivel= No h valor porque o valor ou usurio quem define Para definir Variveis com resultados de somas subtraes multiplicaes divises Usamos o /a depois de set Ex.: Set /a Varivel=numero+numero Set /a Varivel=numero-numero Tambm se uma varivel um valor numrico podemos trabalhar com ela, por exemplo, Set /a Varivel=%random%*%random% Na linguagem Batch no temos suporte para restos, se fazemos 3/2 no nos Dara 1.5 e sim 1 (arredonda para abaixo) Para mais informao sobre Variveis set? 2.1. Recortar uma Varivel Podemos tomar algo de uma varivel, por exemplo: H uma variante chamada original e seu valor abcdefghijk Se quisermos somente obter as letras fghi, temos que ver quantas letras H antes do f neste caso seriam 5 (abcde) e quantos caracteres ocupa O que queremos ver neste caso seriam 4 (fghi). %nomevariante:~numerosdecaracteresanteriores,numer osdecaracteresquequeremosver% No exemplo anterior seria 5,4 (nos mostraria somente fghi) %original:~5,4% Agora queremos mostrar a partir do c em diante %original:~2% Agora queremos mostrar os ltimos 3 caracteres %original:~-3% Agora queremos mostrar tudo menos os ltimos trs caracteres %original:~0,-3% Para fazer o sinal estando no cmd, fazemos com alt+126 3. looping Um loop ou ciclo de repetio, em programao, uma seqncia que se realiza repetidas vezes a algo dentro do cdigo, at que a condio designada ao looping deixe de existir. Vejamos como se usam os looping: Voltemos ao bloco de notas e escrevemos @echo off :ini Echo este um looping Goto :ini E salvamos como j dissemos. Viro como apareceu vrias vezes o este um looping sendo que foi escrito uma s vez, Este o looping. Ao escrever :looping Referimos-nos que ali um ponto de partida e ao colocar onde quisermos Goto: looping o que fazemos voltar ao ponto de partida, claro que algo assim no looping no terminara nunca e teremos que fechar o console a mo. Analisemos: @echo off: @ faz com que o comando atual no tenha eco, o eco dizemos que aparea o Prompt, e o echo off desativa o eco, ou seja, nunca veremos o Prompt a menos que escrevemos echo on.

@echo off: @ faz com que o comando atual no tenha eco, o eco dizemos que aparea o Prompt, e o echo off desativa o eco, ou seja, nunca veremos o Prompt a menos que escrevemos echo on. 4. Comando IF O comando IF diz que se algo ocorrer, em conseqncia faa algumas coisas ou se algo no ocorrer que faa outras coisas. Vejamos: IF valor==valor (echo Coincide) else (echo no coincide) Isto nos diz que se valor igual a valor escreva coincide caso contrario escreva no coincide. Com isso podemos comparar Variveis e valores Ex.: IF %homedrive%==C: (echo Disco local C) else (echo o disco local diferente de C) Podemos comparar se uma varivel igual outra podemos comparar se maior, menor, maior ou igual menor ou igual, diferente. EQU - igual NEQ - no igual LSS - menor que LEQ - menor que ou igual GTR - maior que GEQ - maior que ou igual Ex.: IF 4 gtr 5 (echo Calculo impossvel) else (echo 4 no maior que 5) Ao invs de usar um comando na condio podemos usar vrios: IF 5 lss 7 (Echo 5 menor que 7 Echo 7 maior que 5 Pause ) else ( Echo. ) Exemplo cdigo integrando IF e set: @echo off Echo 2 mais quanto igual 5? [escreva somente o numero] Set /p rta= Set /a soma=2+%rta% IF %soma%==5 (echo correto) Pause Exit Na condio podemos remover a parte do else (), se no queremos que passe nada que contradiga a condio. Ao usar o IF, podemos indicar se a varivel x esta definida ou no, e seguindo isso poder realizar diversas aes, vejamos alguns exemplos: Para indicar se x esta definida que escreva correto caso contrario que escreva incorreto IF defined x (echo correto) else (echo incorreto) Para indicar se x no esta definida que escreva incorreto caso contrario que escreva correto IF not defined x (echo incorreto) else (echo correto) Podemos verificar a existncia de um arquivo no diretrio IF exist "%windir%" (echo existe) else (echo no existe) Podemos tambm verificar a inexistncia de um arquivo no diretrio IF not exist "C:\musica. mp3" (echo no existe) else (echo existe) Criaremos um menu com IF, set e Goto

@echo off Echo Menu Echo. Echo 1. Escreva a palavra batch Echo 2. O que isso? Echo 3. Sair

Echo Menu Echo. Echo 1. Escreva a palavra batch Echo 2. O que isso? Echo 3. Sair Echo pressione o numero da opo e depois enter Set /p opc= If %opc%==1 (goto:escreva) If %opc%==2 (goto:queisso) If %opc%==3 (exit) :escreva Echo Batch Pause Exit :queisso Echo -esta- uma palavra Pause Exit Algum j se perguntou para que serve exit, serve para terminar o console do cmd limpar as variveis etc. 5.Comandos bsicos Para explorar cada comando usamos o nome do comando seguido por /? Cls - limpa a tela Type caminhoarquivo escreva na tela um arquivo DO caminhoarquivo limpa um arquivo Copy caminhoorigem caminhofinal Copia um arquivo Move caminhoorigem caminhofinal Copia um arquivo Ren caminhoorigem novonome renomear um arquivo Title novo titulo muda o titulo do console Md caminho diretrio cria uma pasta Rd caminho diretrio - limpa uma pasta Tasklist Lista os processos atuais Taskkill /f /im processo.extenso termina um processo Taskkill /pid numerodepid termina um processo indicando o numero de pid Fc caminhoarquivo1 caminhoarquivo2 Compara dois arquivos Find cadeiadetexto caminhoarquivo Busca em um arquivo uma cadeia de texto Findstr cadeiadetexto caminhoarquivo Busca uma cadeia em vrios diretrios Format formata uma unidade Start Inicia uma aplicao 6.Shutdown Com o shutdown podemos apagar, reiniciar e anular um equipamento em uma quantidade de segundos Para apagar o equipamento em 30 segundos: Shutdown s t 30 Para reiniciar: Shutdown r Para anular: Shutdown a Para forar o fechamento de aplicativos sem advertir usamos f Exemplo de reinicio forando o fechamento de aplicativos, em 5 segundos com um comentrio Shutdown r f t 5 c "comentrio" 7.Call Usa-se para chamar um arquivo de lotes externo ou alguma parte do arquivo de lotes atual Ex.: Call caminho do arquivo de lote Para chamar a uma parte do arquivo Ex.: Call :looping Podemos Adicionar parmetros colocando depois do que queremos chamar ex: call:looping 123 Aqui enviamos com o looping o parmetro de valor 123. 8.Parmetros Um parmetro um tipo de varivel que recebida por uma funo, procedimento ou sub-rotina. Os parmetros podem ser de fabrica ou podemos colocar ns mesmos. Por exemplo: Call "arquivo.bat" abcdef Neste exemplo ao abrir o arquivo se iniciara com um parmetro com valor abcdef. O bat que abrir pode comprovar se est sem parmetro em sua execuo e seguir ou executar algo com o IF. Por exemplo: Nas primeiras linhas de arquivo.bat escreveremos este fragmento de cdigo: Set var=%1 IF %var%==abcdef (echo o parmetro abcdef foi recebido corretamente) O parmetro %0 o prprio bat, este est definido e predeterminado, ou seja, se o arquivo bat estiver no disco c, o parmetro %0 ser C:\arquivo.bat Agora enviaremos a :ini um caminho como parmetro Call:ini "%homedrive%%homepath%\desktop\arquivo.bat" pause :ini Echo %~f1 file

Call:ini "%homedrive%%homepath%\desktop\arquivo.bat" pause :ini Echo %~f1 file Echo %~p1 path Echo %~n1 name Echo %~x1 xtencion Echo %~s1 single Echo %~a1 atribute Echo %~t1 time Echo %~z1 zone Goto:eof O Goto:eof se usa para terminar a funo %~f1 - retorna o caminho e o arquivo de %1. %~d1 - retorna a letra da unidade de %1. %~p1 - retorna somente o caminho do arquivo %1. %~n1 - retorna somente o nome de arquivo %1. %~x1 - retorna somente a extenso do arquivo %1. %~s1 - retorna somente o caminho, com diretrios, com nomes curtos do arquivo %1. %~a1 - retorna os atributos do arquivo. %~t1 - retorna a hora/data do arquivo %1 %~z1 - retorna o tamanho do arquivo %1. 9.Shift Muda a posio dos parmetros. Por exemplo se tivermos o parmetros: a [%1], b [%2], c [%3], d [%4], e [%5], f [%6] Shift /1 Os parmetros mudam: b [%1], c [%2], d [%3], e [%4], f [%5] Shift /2 Os parmetros mudam: a [%1], c [%2], d [%3], e [%4], f [%5] Para entender melhor como Apagar o parmetro do modificador e reagrupar os nmeros dos parmetros Segundo sua ordem. 10.Attrib Muda ou mostra os atributos do arquivo Para mostrar usamos: Attrib arquivo Para modificarmos adc + adicionamos atributos e com o - removemos. R Atributo de somente leitura do arquivo. A Atributo de arquivo de armazenamento. S Atributo de arquivos do sistema. H Atributo de arquivo oculto. Por exemplo, para ocultar um arquivo e dar lhe atributos de sistema fazemos: Attrib +h +s "arquivo" E para voltar velo fazemos: Attrib -h "arquivo" 11.Redirecionadores Para escrever um arquivo de texto que diga abc fazemos: Echo abc > "caminhodoarquivotxt.txt" Para Adicionar outra linha ao arquivo sem sobre escrever fazemos: Echo def >> "caminhodoarquivotxt.txt" Podemos tambm ocultar a sada de um comando com uma re-direo Ex.: Ping n 1 localhost>nul O >nul se usa para ocultar o texto de sada Tambm podemos redirecionar a uma impressora com >prn Para redirecionar a uma porta paralela PRN, LPT1, LPT2, LPT3, para redirecionar a uma porta serial COM1, COM2, COM3, etc. 12.Manejo do Registro (Cuidado ao usar esses comandos) Isso til se queremos Adicionar um programa ao iniciar do nosso sistema incluindo o prprio bat, ou fazer mudanas sem necessidade de entrar no regedit.

12.Manejo do Registro (Cuidado ao usar esses comandos) Isso til se queremos Adicionar um programa ao iniciar do nosso sistema incluindo o prprio bat, ou fazer mudanas sem necessidade de entrar no regedit. 12.1.Adicionar chave ao registro Reg add "chave" /v "nome ou valor da entrada" /t "tipo de entrada" /d "dados da entrada" Os tipos de entradas so: REG_SZ REG_MULTI_SZ REG_DWORD_BIG_ENDIA N REG_DWORD REG_BINARY REG_DWORD_LITTLE_EN DIAN REG_NONE REG_EXPAND_SZ ] exemplo: reg add "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v "exemplo" /t reg_sz /d "C:\exemplo.bat" 12.2.Apagar chave do registro Reg delete "chave" /v "nome da entrada" /f (executa sem pedir confirmao) exemplo: reg delete "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v "exemplo" /f Se quisermos sobrescrever uma entrada j existente, fazemos como se adicionssemos uma nova chave porem colocamos o parmetro /f que no pede confirmao. 12.3.Consultar chave do registro Reg query "chave" /v "nome da entrada" Podemos usar os modificadores [/ve] [/s] /ve Consultar o valor de fabrica /s Consulta sub chaves e valores Ex.: reg query "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" Consultarmos a chave "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" 12.4.Exportar arquivo .reg de uma chave Reg export "chave" arquivo pra onde se exportara o .reg Ex.: reg export "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" "%homedrive%%homepath%\desktop\HKLMRun.reg" No seu desktop ser criado o arquivo HKLMRun.reg com os valores da chave "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" 12.5.Importar um arquivo .reg ao registro Reg import arquivo.reg Ex.: reg import %homedrive%%homepath%\desktop\HKLMRun.reg Ser importado o arquivo HKLMRun.reg do desktop ao registro. 12.6.Comparar duas chaves do registro

Reg compare "chave1" chave2

12.6.Comparar duas chaves do registro

Reg compare "chave1" chave2 Podemos Adicionar os modificadores /v nome da entrada Para comparar uma entrada especifica /ve Para comparar o valor de fabrica Ex.: reg compare "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" "HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr entVersion\Run" Compara os valores das chaves de HKLM com HKCU 13.errorlevel A varivel errorlevel muito til para saber se algum comando no foi executado, no caso de existir erros ao processar um comando, errorlevel ser 1 se ocorrer tudo bem o errorlevel ser 0, ao no encontrar o comando o errorlevel ser 9009. Ex.: Abcdef Echo %errorlevel% Pause Aqui nos Dara um errorlevel de 9009 j que abcdef no um comando, a menos que tenhamos um comando chamado abcdef. Ex: Cd "C:\abcdef" Echo %errorlevel% Errorlevel nos retornar 1 a menos que tenhamos uma pasta no c chamada abcdef, se tivermos o errorlevel ser 0. 14.AT At serve para criar tarefas programadas: At hh:mm processo.exe At hh:mm /Interactive processo.exe Ao usar o /Interactive permite a interao com o usurio, se no se utilizar o /Interactive se executaria o processo porem em segundo plano. Para Apagar uma tarefa programada fazemos At numerodatarefa /delete O numero da tarefa colocamos o numero identificador da tarefa, que nos da o cmd quando criamos a tarefa. Tudo que for executado no at, sair do usurio system e que nos d uma escala em privilgios. 15.SUBST Atribui uma letra a um caminho Subst W: %homedrive%%homepath%\desktop Aqui criamos um disco W para acesso no caminho %homedrive%%homepath%\desktop Para Apagar esta unidade virtual usamos Subst W: /D 16.ASSOC Mostra ou modifica as associaes de extenses de arquivos, para mostrar usa-se somente assoc para modificar usa-se Assoc .extenso=tipodearquivo Ex.: assoc .txt=batfile Assim os arquivos bat sero vistos como arquivos de texto. 17.CACLS Mostra ou modifica o acesso dos usurios sobre os diretrios ou arquivos. Para denegar o acesso a um usurio neste caso nosso usurio atual Cacls "diretrioarquivo" /e /d %username% Para permitir o acesso a um usurio neste caso nosso usurio atual Cacls "diretrioarquivo" /e /g %username%:f Para denegar o acesso a todos os usurios Cacls "diretrioarquivo" /e /d todos Para permitir o acesso a todos os usurios Cacls "diretrioarquivo" /e /g todos:f 18.Setlocal e Endlocal Setlocal indica que estamos a ponto de realizar algumas mudanas nas Variveis de ambiente no script se

Cacls "diretrioarquivo" /e /g todos:f 18.Setlocal e Endlocal Setlocal indica que estamos a ponto de realizar algumas mudanas nas Variveis de ambiente no script se deve manter-se no contexto atual, ao usar setlocal as Variveis ficam como esto atualmente por mais que se modifique, depois do setlocal nas Variveis se usa endlocal, dai as Variveis voltam como estavam antes. Ex.: Set x=abcdef Setlocal Set x=xsakxal Echo %x% Endlocal Echo %x% Pause A varivel x ser modificada estando dentro do setlocal, porem com endlocal ela volta ao normal. Ao invs setlocal admite modificadores ENABLEEXTENSIONS / DISABLEEXTENSIONS Habilita ou desabilita as extenses. Por exemplo Setlocal ENABLEEXTENSIONS Echo errorlevel ser definida se as extenses estiverem habilitadas Echo %errorlevel% Endlocal Pause No exemplo errorlevel nos deu 0, porque echo no deu erro e estava definido porque foram habilitadas as extenses. Outro exemplo Setlocal DISABLEEXTENSIONS Echo errorlevel no ser definido porque as extenses esto desabilitadas Echo %errorlevel% Endlocal Pause Neste exemplo errorlevel no esta definido, porque as extenses esto desabilitadas. Tambm suporta os modificadores ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION Este ser explicado junto com for. 19.FOR O for um dos comandos, mais complexos e de maior uso. Comeamos: [Nota: estando no console usaremos %a porem estando em um bat usaremos %%a] For /l %%a in (1,1,8) do (echo repete esta 8 vezes) Neste cdigo observamos que com o modificador, /l indicamos que vai existir uma seqncia de nmeros na parte "in ()", em "in" teremos numero inicial, o passo, numero final no exemplo acima contar de 1 em 1 comeando de 1 at 8, se tivesse sido 1,2,8 o "for" contaria de 2 em 2 comeando de 1 at 8. Para cada vez ou cada numero que contar ser executado o cdigo que esta no "do" por isso no exemplo se repete 8 vezes a frase. Ao contrario a varivel %%a ter o valor do numero que estamos contando. Ex. For /l %%a in (1,1,10) do (echo %%a) Aqui contara at 10 e retornar os nmeros do 1 aos 10. O %%a pode substitudo por %%b ou %%ocaracterquequizermos For /f %%a in ('type arquivo.txt') do (echo %%a) Quando usamos o modificador /f indicamos que devolva o comando de dentro do "in", e este ser aplicado no "do". O comando de dentro do "in" se delimita com aspas simples ' '. Ao escrever as linhas o "do" escrevera na tela o arquivo arquivo.txt dividido por linhas. Pois o type receber a linha e o echo a escrevera. Com o modificador /f podemos usar: Delims especifica um grupo de delimitadores Skip pula a quantidade de linhas que indicarmos Tokens o texto extrado mostra as colunas que indicarmos Vejamos exemplos: For /f "Delims=" ('type arquivo.txt') do (echo %%a) Aqui escrevera o arquivo.txt por linhas, a diferena do cdigo anterior que teramos erros nas linhas do arquivo pois iriam ser cortadas.

For /f "Delims=" ('type arquivo.txt') do (echo %%a) Aqui escrevera o arquivo.txt por linhas, a diferena do cdigo anterior que teramos erros nas linhas do arquivo pois iriam ser cortadas. For /f "Skip=3" ('type arquivo.txt') do (echo %%a) Pula as primeiras 3 linhas do arquivo For /f "Tokens=2,4" ('Tasklist') do (echo %%a) O Tasklist nos escrevera as colunas 2 e 4, ou seja o pid e o uso de memria For %%a in (a b c) do (echo %%a) Aqui nos escrevera as letras a b c, isso significa que passar pelo "do" com a letra a na varivel %%a depois passar de volta ao "do" porem Agora a varivel %%a valer b e depois quando passe novamente pelo "do" %%a ser c. No for no podemos salvar uma varivel que muda, por isso no inicio do arquivo escreveremos setlocal enabledelayedextension. Isto habilitara a expansion de Variveis retardada. Desta maneira podemos salvar Variveis no for, no da forma %Varivel% e sim !Varivel! Ex.: Set n=0 For /f "Skip=4 Tokens=1" %%a in ('type arquivo.txt') do (set /a n=!n!+1) Para saber quantas vezes passaram pelo "do" as linhas do arquivo ficar armazenadas na varivel n o numero de linhas do arquivo.txt Se quisermos colocar um for dentro de outro, no devemos usar as mesmas Variveis do tipo %%x. Um exemplo correto de for dentro de for seria: For /l %%a in (1,1,5) do (For /l %%b in (1,1,8) do (Echo %%a-%%b)) 20.Comprimir e Descomprimir arquivos se tivermos o Winrar instalado 20.1.Para comprimir arquivos Start winrar.exe a "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox\arquivo.txt" A se usa para indicar que vamos comprimir -ibck se usa para indicar que a ao vai ser executada em modo background -p(seguido do texto, sem parntesis) se usa para colocar-se senha no rar -ep1 se usa para excluir todos os diretrios que contem nesse arquivo -df se usa para eliminar os arquivos depois da compresso Ex: Start Winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\arquivoscomprimido. rar" "\Documents and Settings\Administrador\desktop\arquivoqueseracompr imido.*" start winrar.exe a -ep1 "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop\Oi.txt" -ibck start winrar.exe a -ep1 -pcasa -df "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop\Oi.txt" -ibck (Neste ultimo exemplo a senha seria a palavra casa e sero eliminados os arquivos depois da compresso) 20.2.Para descomprimir arquivos Start winrar.exe x "\caminho1\caminhox\arquivo.rar" "\caminho1\caminhox" x se usa para indicar que vamos descomprimir Ex: Start Winrar.exe x "\Documents and Settings\Administrador\desktop\arquivoscomprimido. rar" "\Documents and Settings\Administrador\desktop" start winrar.exe x "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop" -ibck start winrar.exe x -pcasa "\Documents and Settings\Administrador\desktop\Boss.rar" "\Documents and Settings\Administrador\desktop" -ibck (Neste ultimo exemplo descomprimiria usando a senha casa) [todos os comandos do Winrar esto na pasta do programa, no arquivo rar.txt] 21.modificar tamanho do console Podemos modificar o tamanho do console desta maneira: MODE CON: COLS="quantidadecolunas" LINES="quantidadelinhas" Em quantidade de colunas, colocamos a quantidade de colunas (sem aspas) e em quantidade de linhas colocamos a quantidade de linhas (sem aspas)

MODE CON: COLS="quantidadecolunas" LINES="quantidadelinhas" Em quantidade de colunas, colocamos a quantidade de colunas (sem aspas) e em quantidade de linhas colocamos a quantidade de linhas (sem aspas) Ex.: Mode con: cols=50 lines=25 Ps.: o tamanho de uma clula de 12 x 8 pixels, um quadrado seria por exemplo: mode con: cols=48 lines=32 22.Ativar ou desativar firewall do Windows Para Ativar netsh firewall set opmode enable Para desativar netsh firewall set opmode disable Netsh nos oferece varias opes para configurao de uma rede. Para mais informao netsh/? 23.Tabelas Modelos de Tabelas: Modelo 1 Echo Echo Echo Echo Modelo 2 Echo Echo Echo Echo Echo Modelo 3 Echo Echo Echo Echo Echo Echo Echo Modelo 4 Echo Echo echo echo echo 24.Comandos de Rede FTP Iniciar o cliente FTP IPCONFIG parmetros Mostrar as caractersticas de configurao de IP /all -> mostra toda a informao de configurao /release adaptador -> libera o ip do adaptador especificado /renew adaptador -> renova o ip para o adaptador especificado /flushdns -> purga o cach de resoluo de dns /registerdns -> atualiza as conexes dhcp e volta a registrar os nomes dns /displaydns -> mostra o contedo do cach de resoluo dns Netstat Comando para verificar o estado atual da rede Netstat -a Mostrar todos os pontos e conexes Netstat -n Mostrar nmero de porta e caminhos Netstat -r Mostrar a tabela de caminhos Netstat -s Mostrar estatsticas por protocolo Netstat -p tcp/udp Mostrar as conexes ativas TCP ou UDP Nslookup

Netstat -r Mostrar a tabela de caminhos Netstat -s Mostrar estatsticas por protocolo Netstat -p tcp/udp Mostrar as conexes ativas TCP ou UDP Nslookup Utilizado para interpretar o dns Ping Enviar pacotes icmp a um determinado destino. ping -t ping ao host at que se pare ping -a resolver caminhos em nomes de host ping -n numero Nmero de parties a enviar ping -l tamanho tamanho do buffer Telnet Inicia uma sesso Telnet ao host especificado na porta especificada. se a porta for omitida se usa a 23 por default. Tracert Traar o destino at chegar ao caminho indicado. 25.fazer com que o bat espere um tempo Podemos fazer de varias formas: Podemos fazer um ping a localhost e no numero de parties a enviar colocamos os segundos de espera. Ex: Ping -n 1 localhost>nul Espera um segundo e oculta o texto que aparece ao executar ping com o ">nul". Ping -n 5 127.0.0.1>nul Espera 5 segundos e oculta o texto que aparece ao executar ping com o ">nul". Podemos colocar 127.0.0.1 ou localhost que o mesmo. Localhost nosso PC, se estivermos sem conexo funciona melhor que 127.0.0.1. Podemos criar um comando que executa ou espera. ex: @echo off setlocal If x%1x==xx (Goto: ajuda) set tempo=%1 call:verif >nul 2>&1 goto:veriff :verif set /a ver=0x%tempo% goto:eof :veriff If %errorlevel% neq 0 (Goto: ajuda) call: code %tempo% >nul 2>&1 endlocal goto:eof :code set /a tempoterm=%time:~0,2%*3600+%time:~3,2%*60+%time:~6 ,2%+%tempo% set /a hs=%tempoterm%/86399 set d=%date:~0,2% :ini set /a tempoact=%time:~0,2%*3600+%time:~3,2%*60+%time:~6, 2% if %d% neq %date:~0,2% ( set /a tempoterm=%hs%*-86399+%tempoterm% set d=%date:~0,2% if %hs% leq 0 (set /a hs-=1)) if %tempoterm% geq %tempoact% (goto :ini) goto:eof :ajuda echo %~nx0 Insere uma pausa de n segundos echo Criado por Carlos echo. echo Sintaxe: echo %~nx0 Segundos echo. echo Ex.: %~nx0 777 goto:eof

Salvem como espera.bat em C:\Windows\System32 Para utilizar muito simples, colocamos no nosso cdigo: Espera "quantidadedesegundos" ---------------------------------------------------------------------------

Você também pode gostar