Download - Tutorial de Programação Em Batch
-
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