tutorial de programação em batch

Upload: fc22

Post on 14-Oct-2015

32 views

Category:

Documents


3 download

TRANSCRIPT

  • 5/24/2018 Tutorial de Programa o Em Batch

    1/17

    Tutorial de programao em Batch (todos os nveis)

    Contedo

    1. Introduo

    2. ari!veis2.1. "ecortar uma ari!vel#. $ooping%. Comando I&'. Comandos !sicos. *hutdo+n,. Call-. ar/metros0. *hit1. 3ttri11. "e4direcionadores12. 5ane6o do "egistro (Cuidado usando mal o regedit pode provocar at7 o colapso dosistema)12.1. 3dicionar chave ao registro12.2. 3pagar chave do registro12.#. Consultar chave do registro12.%. 89portar ar:uivo .reg de uma chave12.'. Importar um ar:uivo .reg ao registro12.. Comparar duas chaves do registro1#. errorlevel1%.3T

    1'.*;B*T1.3**

  • 5/24/2018 Tutorial de Programa o Em Batch

    2/17

    vai ser o :ue interpretar! os cdigos :ue digitaremos.ara arir o console vamos ao 5enu iniciarDe9ecutar (ou use a tecla do logotipo do >indo+s r)@ ali escreveremos cmd.e9e e depois 8nter.&oi aerta uma 6anela negra@ com um sulinhado piscando este 7 o cursor@ a direita docursor temos o romptE

    C:\Documents and Settings\Administrator>_< rompt nos mostra onde estamos locali?ados virtualmente@ o :ue vemos 7 um caminho eum D@ o D nos di? :ue terminou o caminho e comea a ordem :ue ns escreveremos.< caminho esta composto por FunidadeGEHdiretrioH...

    e CheatsJ@para a?er isso escreveremosE

    echo Web CheatsAeste caso echoJ 7 o comando e >e CheatsJ so os par/metros (seriam dois

    par/metros@ os par/metros so delimitados por espao@ um espao indica onde termina umpar/metro e comea outro)< comando 8cho mostra um te9to e tam7m oculta a visuali?ao do rompt.ara ocultar o rompt escreveremos echo o @ para visuali?ar echo on.

    ara dei9ar uma regio em ranco escreveremos echo.J (sem aspas)ara oter a a6uda de um comando@ escreveremosComando KLM! dois tipos de comandos os internos e os e9ternos@ os internos so todos os comandos

    :ue vNm integrados com o console e os e9ternos so ar:uivos :ue uncionam comocomandos.ara oter a lista dos comandos internos@ escreveremos o comando MelpJ.3gora com toda esta teoria@ comeamos a criar nossos scripts.amos ao loco de Aotas@ e escreveremos o seguinteE

    echo Web Cheatspause

    8 salvamos como O. at@ onde est! O vai ser o nome do ar:uivo :ue :ueremos Fassim 7 :ue sesalva um script atchG.=epois uscamos o ar:uivo.at e lhe damos duplo clicP.8 oi aerto o console di?endo >e CheatsJ@ e aai9o pressione uma tecla paracontinuar.J@ ao pressionarmos uma tecla termina a 6anela.< comando ause serve para inserirmos uma pausa@ e no dei9ar :ue continue o script@ seno estivesse o script se echaria@ pois no e9istiriam mais ordens aai9o o script inali?a.8sta oi uma demonstrao de um script. 3gora voltemos ao console.ara mover4nos entre os diretrios usaremos o comando cd89.EIr a uma pasta anterior usa4seE cd..Ir ao disco rai? usamosE cdHIr a uma pasta dentro do :ue estamos usamosE cd pastaIr a um caminho especiico usamosE cd =iscoEHdiretrioH*udiretriosJ

    ara listar diretrios usamos o comando dir@ para ver os par/metros escrevemos no console

  • 5/24/2018 Tutorial de Programa o Em Batch

    3/17

    dirKL 8 nos =ara a a6uda deste comando.or e9emplo@ para ver os ar:uivos :ue temos no desPtop primeiro vamos ao desPtop;samos cd desPtop e depois escrevemos dir Ka

    2. Variveis

    ara ver todas as ari!veis usamos o comando set*e escrevermos set e depois 8nter veremos todas as ari!veis.8stas so as ari!veis mais usadasE

    %ALLUSERSR!"#LE% C:\Documents and Settings\A$$ Userscaminho da pasta com a con&igura'(o para todos os usu)rios*

    %ADA+A% C:\Documents and Settings\ ,usu)rio- \Dados de ap$icati.oscaminho da pasta com Dados de ap$icati.os*%C!/U+ER0A/E% nome do e1uipamento

    nome do e1uipamento*%C!/SEC% C:\Windo2s\S3stem45\cmd6e7e

    caminho do interpretador de comandos*

    %8!/EDR#9E% unidade onde est(o os dados do usu)rio C:*unidade onde se encontram os dados de usu)rio*%8!/EA+8% \Documents and Settings\,usu)rio-

    caminho a pasta do usu)rio atua$*%USERR!"#LE% C:\Documents and Settings\,usu)rio-

    #nc$uindo unidade*%A+8% C:\Windo2s\S3stem45\C:\Windo2s\

    caminhos onde se buscam e7ecut).eis*%A+8E;+%%%%6 C!/ 6E;E 6

  • 5/24/2018 Tutorial de Programa o Em Batch

    4/17

    ara deinir uma vari!vel a?emos*et ariS!velvalorariS!vel 7 o nome da nossa vari!vel e em valor o :ue :ueremos :ue se6a a ari!velAo at para :ue na vari!vel o usu!rio deina o valor a?emosE

    Set p 9ari).e$MAo h! valor por:ue o valor ou usu!rio 7 :uem deineara deinir ari!veis com resultados de somas sutraUes multiplicaUes divisUes;samos o Ka depois de set

    89.E

    Set a 9ari).e$MnumeroNnumeroSet a 9ari).e$MnumeroOnumero

    Tam7m se uma vari!vel 7 um valor num7rico podemos traalhar com ela@ por e9emplo@

    Set a 9ari).e$M%random%P%random%

    Aa linguagem Batch no temos suporte para restos@ se a?emos #K2 no nos =ara 1.' e sim1 (arredonda para aai9o)ara mais inormao sore ari!veis setL

    2.1. Recortar uma Varivelodemos tomar algo de uma vari!vel@ por e9emploEM! uma variante chamada original e seu valor 7 acdeghi6P*e :uisermos somente oter as letras ghi@ temos :ue ver :uantas letrasM! antes do neste caso seriam ' (acde) e :uantos caracteres ocupa< :ue :ueremos ver neste caso seriam % (ghi).

    %nome.ariante:BnumerosdecaracteresanterioresGnumer osdecaracteres1ue1ueremos.er%Ao e9emplo anterior seria '@% (nos mostraria somente ghi)

    %origina$:BQG%3gora :ueremos mostrar a partir do c em diante

    %origina$:B5%3gora :ueremos mostrar os ltimos # caracteres

    %origina$:BO4%3gora :ueremos mostrar tudo menos os ltimos trNs caracteres

    %origina$:BFGO4%ara a?er o sinal estando no cmd@ a?emos com alt12

    3. looping;m loop ou ciclo de repetio@ em programao@ 7 uma se:VNncia :ue se reali?a repetidasve?es a algo dentro do cdigo@ at7 :ue a condio designada ao looping dei9e de e9istir.

    e6amos como se usam os loopingEoltemos ao loco de notas e escrevemos

    echo o&&:ini

  • 5/24/2018 Tutorial de Programa o Em Batch

    5/17

    Echo este T um $ooping?oto :ini

    8 salvamos como 6! dissemos.iro como apareceu v!rias ve?es o este 7 um loopingJ sendo :ue oi escrito uma s ve?@8ste 7 o looping.

    3o escrever

    :$ooping"eerimos4nos :ue ali 7 um ponto de partida e ao colocar onde :uisermos WotoE looping o:ue a?emos 7 voltar ao ponto de partida@ claro :ue algo assim no looping no terminaranunca e teremos :ue echar o console a mo.3nalisemosE

    Xecho oEX a? com :ue o comando atual no tenha eco@ o eco di?emos :ue aparea o rompt@ e oecho o desativa o eco@ ou se6a@ nunca veremos o rompt a menos :ue escrevemos echo on.

    4. Comando IF< comando I& di? :ue se algo ocorrer@ em conse:VNncia aa algumas coisas ou se algo noocorrer :ue aa outras coisas.e6amosE

    #" .a$orMM.a$or echo Coincide* e$se echo n(o coincide*Isto nos di? :ue se valor 7 igual a valor escreva coincide caso contrario escreva nocoincide.Com isso podemos comparar ari!veis e valores 89.E

    #" %homedri.e%MMC: echo Disco $oca$ C* e$se echo o disco $oca$ T di&erente de C*odemos comparar se uma vari!vel 7 igual Y outra podemos comparar se 7 maior@ menor@maior ou igual menor ou igual@ dierente.

    EU O igua$0E O n(o igua$LSS O menor 1ue

    LE O menor 1ue ou igua$?+R O maior 1ue

    ?E O maior 1ue ou igua$89.E

    #" gtr Q echo Ca$cu$o impossI.e$* e$se echo n(o T maior 1ue Q*3o inv7s de usar um comando na condio podemos usar v!riosE

    #" Q $ss J Echo Q T menor 1ue JEcho J T maior 1ue Q

    ause* e$se Echo6

    *89emplo cdigo integrando I& e setE

    echo o&&

    Echo 5 mais 1uanto igua$ QV escre.a somente o numeroXSet p rtaM

    Set a somaM5N%rta%

  • 5/24/2018 Tutorial de Programa o Em Batch

    6/17

    #" %soma%MMQ echo correto*ause

    E7itAa condio podemos remover a parte do else ()@ se no :ueremos :ue passe nada :uecontradiga a condio.3o usar o I&@ podemos indicar se a vari!vel 9 esta deinida ou no@ e seguindo isso poderreali?ar diversas aUes@ ve6amos alguns e9emplosEara indicar se 9 esta deinida :ue escreva correto caso contrario :ue escreva incorreto

    #" de&ined 7 echo correto* e$se echo incorreto*ara indicar se 9 no esta deinida :ue escreva incorreto caso contrario :ue escrevacorreto

    #" not de&ined 7 echo incorreto* e$se echo correto*odemos veriicar a e9istNncia de um ar:uivo no diretrio

    #" e7ist Y%2indir%Y echo e7iste* e$se echo n(o e7iste*odemos tam7m veriicar a ine9istNncia de um ar:uivo no diretrio

    #" not e7ist YC:\musica6 mp4Y echo n(o e7iste* e$se echo e7iste*Criaremos um menu com I&@ set e Woto

    echo o&&Echo /enu

    Echo6Echo 6 Escre.a a pa$a.ra batch

    Echo 56 ! 1ue T issoVEcho 46 Sair

    Echo pressione o numero da op'(o e depois enterSet p opcM

    #& %opc%MM goto:escre.a*#& %opc%MM5 goto:1ueisso*

    #& %opc%MM4 e7it*:escre.a

    Echo

  • 5/24/2018 Tutorial de Programa o Em Batch

    7/17

    Rd Zcaminho diretHrio[ O $impa uma pasta+as]$ist Lista os processos atuais

    +as]]i$$ & im Zprocesso6e7tens(o[ termina um processo+as]]i$$ pid Znumerodepid[ termina um processo indicando o numero de pid

    "c Zcaminhoar1ui.o[ Zcaminhoar1ui.o5[ Compara dois ar1ui.os"ind Zcadeiadete7to[ Zcaminhoar1ui.o[

  • 5/24/2018 Tutorial de Programa o Em Batch

    8/17

    Echo %Bn nameEcho %B7 7tencionEcho %Bs sing$e

    Echo %Ba atributeEcho %Bt timeEcho %B one

    ?oto:eo&< WotoEeo se usa para terminar a uno

    %B& O retorna o caminho e o ar1ui.o de %6%Bd O retorna a $etra da unidade de %6

    %Bp O retorna somente o caminho do ar1ui.o %6%Bn O retorna somente o nome de ar1ui.o %6

    %B7 O retorna somente a e7tens(o do ar1ui.o %6%Bs O retorna somente o caminhoG com diretHriosG com nomes curtos do ar1ui.o %6

    %Ba O retorna os atributos do ar1ui.o6%Bt O retorna a horadata do ar1ui.o %%B O retorna o tamanho do ar1ui.o %6

    )."#i*t5uda a posio dos par/metros.or e9emplo se tivermos o par/metrosE a FQ1G@ FQ2G@ c FQ#G@ d FQ%G@ e FQ'G@ FQG

    Shi&t

  • 5/24/2018 Tutorial de Programa o Em Batch

    9/17

    odemos tam7m ocultar a sada de um comando com uma re4direo89.E

    ing n $oca$host>nu$< Dnul se usa para ocultar o te9to de sada

    Tam7m podemos redirecionar a uma impressora com Dprnara redirecionar a uma porta paralela "A@ $T1@ $T2@ $T#@ para redirecionar a umaporta serial C

  • 5/24/2018 Tutorial de Programa o Em Batch

    10/17

    12.4.portar aruivo .reg de uma c#ave

    Reg e7port Ycha.eY Zar1ui.o pra onde se e7portara o 6reg[89.E

    reg e7port Y8E_L!CAL_PPPPPPP\So&t2are\/icroso&t\Windo2s\Cur rent9ersion\RunYY%homedri.e%%homepath%\des]top\8L/Run6regYAo seu desPtop ser! criado o ar:uivo M[$5"un.reg com os valores da chaveRM[8\S$indo+sHCur rentersionH"unR

    12.5.Importar um aruivo .reg ao registro

    Reg import Zar1ui.o6reg[89.E

    reg import Z%homedri.e%%homepath%\des]top\8L/Run6reg[*er! importado o ar:uivo M[$5"un.reg do desPtop ao registro.

    56K6Comparar duas cha.es do registroReg compare Ycha.eY Zcha.e5[

    odemos 3dicionar os modiicadoresKv nome da entradaJ ara comparar uma entrada especiicaKve ara comparar o valor de aricaJ89.E

    reg compare Y8E_L!CAL_PPPPPPP\So&t2are\/icroso&t\Windo2s\Cur rent9ersion\RunYY8E_CURRE0+_USER\So&t2are\/icroso&t\Windo2s\Curr ent9ersion\RunY

    Compara os valores das chaves de M[$5 com M[C;

    13.errorlevel3 vari!vel errorlevel 7 muito til para saer se algum comando no oi e9ecutado@ no casode e9istir erros ao processar um comando@ errorlevel ser! 1 se ocorrer tudo em oerrorlevel ser! @ ao no encontrar o comando o errorlevel ser! 00.89.E

    Abcde&Echo %error$e.e$%

    ause3:ui nos =ara um errorlevel de 00 6! :ue acde no 7 um comando@ a menos :ue

    tenhamos um comando chamado acde.89E

    Cd YC:\abcde&YEcho %error$e.e$%

    8rrorlevel nos retornar! 1 a menos :ue tenhamos uma pasta no c chamada acde@ setivermos o errorlevel ser! .

    14.,3t serve para criar tareas programadasE3t hhEmm processo.e9e

    3t hhEmm KInteractive processo.e9e3o usar o KInteractive permite a interao com o usu!rio@ se no se utili?ar o KInteractive

  • 5/24/2018 Tutorial de Programa o Em Batch

    11/17

    se e9ecutaria o processo porem em segundo plano.ara 3pagar uma tarea programada a?emos3t numerodatareaJ Kdelete< numero da tarea colocamos o numero identiicador da tarea@ :ue nos da o cmd :uandocriamos a tarea.

    Tudo :ue or e9ecutado no at@ sair! do usu!rio s]stem e :ue nos d! uma escala emprivil7gios.

    15."6"3triui uma letra a um caminho*ust >E QhomedriveQQhomepathQHdesPtopJ3:ui criamos um disco > para acesso no caminho QhomedriveQQhomepathQHdesPtopJara 3pagar esta unidade virtual usamos*ust >E K=1.3**

  • 5/24/2018 Tutorial de Programa o Em Batch

    12/17

    Mailita ou desailita as e9tensUes.or e9emplo

    Set$oca$ E0A

  • 5/24/2018 Tutorial de Programa o Em Batch

    13/17

    e6amos e9emplosE

    "or & YDe$imsMY t3pe ar1ui.o6t7t* do echo %%a*3:ui escrevera o ar:uivo.t9t por linhas@ a dierena do cdigo anterior 7 :ue teramoserros nas linhas do ar:uivo pois iriam ser cortadas.

    "or & YS]ipM4Y t3pe ar1ui.o6t7t* do echo %%a*ula as primeiras # linhas do ar:uivo

    "or & Y+o]ensM5GY +as]$ist* do echo %%a*< TasPlist nos escrevera as colunas 2 e %@ ou se6a o pid e o uso de memria

    "or %%a in a b c* do echo %%a*3:ui nos escrevera as letras a c@ isso signiica :ue passar! pelo RdoR com a letra a na

    vari!vel QQa depois passar! de volta ao RdoR porem 3gora a vari!vel QQa valer! e depois:uando passe novamente pelo RdoR QQa ser! c.

    Ao or no podemos salvar uma vari!vel :ue muda@ por isso no inicio do ar:uivoescreveremos setlocal enaledela]ede9tension.Isto hailitara a e9pansion de ari!veis retardada.=esta maneira podemos salvar ari!veis no or@ no da orma Qari!velQ e sim ari!vel89.E

    Set nMF"or & YS]ipM +o]ensMY %%a in t3pe ar1ui.o6t7t* do set a nMnN*

    ara saer :uantas ve?es passaram pelo RdoR as linhas do ar:uivo icar! arma?enadas navari!vel n o numero de linhas do ar:uivo.t9t*e :uisermos colocar um or dentro de outro@ no devemos usar as mesmas ari!veis do

    tipo QQ9. ;m e9emplo correto de or dentro de or seriaE

    "or $ %%a in GGQ* do "or $ %%b in GG* do Echo %%aO%%b**2.Comprimir e =escomprimir ar:uivos se tivermos o >inrar instalado

    2.1.ara comprimir ar:uivos

    *tart +inrar.e9e a RHcaminho1Hcaminho9Har:uivo.rarR RHcaminho1Hcaminho9Har:uivo.t9tR3 se usa para indicar :ue vamos comprimir4icP se usa para indicar :ue a ao vai ser e9ecutada em modo acPground4p(seguido do te9to@ sem parNntesis) se usa para colocar4se senha no rar

    4ep1 se usa para e9cluir todos os diretrios :ue contem nesse ar:uivo4d se usa para eliminar os ar:uivos depois da compresso89E

    Start Winrar6e7e a Oep Y\Documents and Settings\Administrador\des]top\ar1ui.oscomprimido6rarY Y\Documents and Settings\Administrador\des]top\ar1ui.o1ueseracompr imido6PY

    start 2inrar6e7e a Oep Y\Documents and Settings\Administrador\des]top\

  • 5/24/2018 Tutorial de Programa o Em Batch

    14/17

    *tart +inrar.e9e 9 RHcaminho1Hcaminho9Har:uivo.rarR RHcaminho1Hcaminho9R9 se usa para indicar :ue vamos descomprimir89E

    Start Winrar6e7e 7 Y\Documents and Settings\Administrador\des]top\ar1ui.oscomprimido6 rarY

    Y\Documents and Settings\Administrador\des]topYstart 2inrar6e7e 7 Y\Documents and Settings\Administrador\des]top\indo+sara 3tivar

    netsh &ire2a$$ set opmode enab$eara desativar

    netsh &ire2a$$ set opmode disab$eAetsh nos oerece varias opUes para conigurao de uma rede.ara mais inormao netshKL

    23.aelas5odelos de TaelasE

    5odelo 1

    ZEcho fffffffffffffffffffffffffffffffffffffffffffffEcho Echo

    Echo fffffffffffffffffffffffffffffffffffffffffffffj5odelo 2

    Echo fffffffffffffffffffffffffffffffffffffffffffffEcho

    Echo kffffffffffffffffffffffffffffffffffffffffffffflEcho

    Echo fffffffffffffffffffffffffffffffffffffffffffffj

  • 5/24/2018 Tutorial de Programa o Em Batch

    15/17

    5odelo #

    Echo Echo

    Echo Echo

    Echo Echo

    Echo 5odelo %

    Echo ffffffffffffffffffffffffffffffffffffffffffffEcho

    echo ffffffffffffffffffffffffffffffffffffffffffffecho

    echo ffffffffffffffffffffffffffffffffffffffffffffj24.Comandos de Rede&T

    Iniciar o cliente &TIC

  • 5/24/2018 Tutorial de Programa o Em Batch

    16/17

    89E

    ing On $oca$host>nu$8spera um segundo e ocultaJ o te9to :ue aparece ao e9ecutar ping com o RDnulR.

    ing On Q 5J6F6F6>nu$8spera ' segundos e ocultaJ o te9to :ue aparece ao e9ecutar ping com o RDnulR.odemos colocar 12,...1 ou localhost :ue 7 o mesmo.$ocalhost 7 nosso C@ se estivermos sem cone9o unciona melhor :ue 12,...1.odemos criar um comando :ue e9ecuta ou espera.e9E

    echo o&&set$oca$

    #& 7%7MM77 ?oto: aquda*set tempoM%

    ca$$:.eri& >nu$ 5>

    goto:.eri&&:.eri&

    set a .erMF7%tempo%goto:eo&

    :.eri&& %error$e.e$% ne1 F ?oto: aquda*

    ca$$: code %tempo% >nu$ 5>end$oca$goto:eo&

    :codeset a tempotermM%time:BFG5%P4KFFN%time:B4G5%PKFN%time:BK G5%N%tempo%

    set a hsM%tempoterm%K4

    set dM%date:BFG5%:ini

    set a tempoactM%time:BFG5%P4KFFN%time:B4G5%PKFN%time:BKG 5%i& %d% ne1 %date:BFG5%

    set a tempotermM%hs%POK4N%tempoterm%set dM%date:BFG5%

    i& %hs% $e1 F set a hsOM**i& %tempoterm% ge1 %tempoact% goto :ini*

    goto:eo&

    :aqudaecho %Bn7F #nsere uma pausa de n segundos

    echo Criado por Car$osecho6

    echo Sinta7e:echo %Bn7F Segundos

    echo6echo E76: %Bn7F JJJ

    goto:eo&

    *alvem como espera.at em CEH>indo+sH*]stem#2Jara utili?ar 7 muito simples@ colocamos no nosso cdigoE

    Espera Y1uantidadedesegundosY:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  • 5/24/2018 Tutorial de Programa o Em Batch

    17/17

    Bem galera Isso 7 s