Você está na página 1de 17

Tutorial de programao em Batch (todos os nveis)

Contedo
1. Introduo
2. ari!veis
2.1. "ecortar uma ari!vel
#. $ooping
%. Comando I&
'. Comandos (!sicos
). *hutdo+n
,. Call
-. .ar/metros
0. *hi1t
12. 3ttri(
11. "e4direcionadores
12. 5ane6o do "egistro (Cuidado usando mal o regedit pode provocar at7 o colapso do
sistema)
12.1. 3dicionar chave ao registro
12.2. 3pagar chave do registro
12.#. Consultar chave do registro
12.%. 89portar ar:uivo .reg de uma chave
12.'. Importar um ar:uivo .reg ao registro
12.). Comparar duas chaves do registro
1#. errorlevel
1%.3T
1'.*;B*T
1).3**<C
1,.C3C$*
1-.*etlocal e 8ndlocal
10. &<"
22. Comprimir e =escomprimir ar:uivos se tivermos o >inrar instalado
22.1. .ara comprimir ar:uivos
22.2. .ara descomprimir ar:uivos
21.modi1icar tamanho do console
21. modi1icar tamanho do console
22. 3tivar ou desativar o 1ire+all do >indo+s
2#. Ta(elas
2%. Comandos de rede
2'. &a?er com :ue o (at espere um tempo
1. Introduo
Batch 7 uma linguagem scripting@ e para sua utili?ao utili?amos o console do *istema do
>indo+s (=<*).
3s linguagens do tipo scripting@ utili?amos para escrevermos script
*cripts so utili?ados para automati?ar tare1as.
.ara iniciarmos no mundo (atch somente necessitaremos um programa o (loco de Aotas@ ou
:ual:uer outro :ue edite ar:uivos de te9to@ (por 1avor@ no usar o >ord@ nem similares) um
muito (om tam(7m 7 o notepadBB ou editpad :ue 7 o mesmo :ue uso.
3ntes de iniciarmos a criao dos nossos scripts vamos aprender a utili?ar o console@ este
vai ser o :ue interpretar! os cCdigos :ue digitaremos.
.ara a(rir o console vamos ao 5enu iniciarDe9ecutar (ou use a tecla do logotipo do >indo+s
B r)@ ali escreveremos cmd.e9e e depois 8nter.
&oi a(erta uma 6anela negra@ com um su(linhado piscando este 7 o cursor@ a direita do
cursor temos o .romptE
C:\Documents and Settings\Administrator>_
< .rompt nos mostra onde estamos locali?ados virtualmente@ o :ue vemos 7 um caminho e
um D@ o D nos di? :ue terminou o caminho e comea a ordem :ue nCs escreveremos.
< caminho esta composto por FunidadeGEHdiretCrioH...
<s dois pontos di?em :ue o anterior 7 a unidade de disco@ no meu caso C e o :ue segue so
os diretCrios delimitados por uma (arra invertida IHJ no con1unda com K.
3s ordens :ue ingressarmos ao console@ estaro compostos do seguinte maneira
FComandoG F.ar/metrosG
3gora vamos 1a?er :ue a(ai9o do .rompt se6a escrita uma linha :ue diga I>e( CheatsJ@
para 1a?er isso escreveremosE
echo Web Cheats
Aeste caso IechoJ 7 o comando e I>e( CheatsJ so os par/metros (seriam dois
par/metros@ os par/metros so delimitados por espao@ um espao indica onde termina um
par/metro e comea outro)
< comando 8cho mostra um te9to e tam(7m oculta a visuali?ao do .rompt.
.ara ocultar o .rompt escreveremos echo o11 @ para visuali?ar echo on.
.ara dei9ar uma regio em (ranco escreveremos Iecho.J (sem aspas)
.ara o(ter a a6uda de um comando@ escreveremos
Comando KL
M! 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 1uncionam como
comandos.
.ara o(ter a lista dos comandos internos@ escreveremos o comando IMelpJ.
3gora com toda esta teoria@ comeamos a criar nossos scripts.
amos ao (loco de Aotas@ e escreveremos o seguinteE
echo Web Cheats
pause
8 salvamos como O. (at@ onde est! O vai ser o nome do ar:uivo :ue :ueremos Fassim 7 :ue se
salva um script (atchG.
=epois (uscamos o ar:uivo.(at e lhe damos duplo clicP.
8 1oi a(erto o console di?endo I>e( CheatsJ@ e a(ai9o Ipressione uma tecla para
continuar.J@ ao pressionarmos uma tecla termina a 6anela.
< comando .ause serve para inserirmos uma pausa@ e no dei9ar :ue continue o script@ se
no estivesse o script se 1echaria@ pois no e9istiriam mais ordens a(ai9o o script 1inali?a.
8sta 1oi uma demonstrao de um script. 3gora voltemos ao console.
.ara mover4nos entre os diretCrios usaremos o comando cd
89.E
Ir a uma pasta anterior usa4seE cd..
Ir ao disco rai? usamosE cdH
Ir a uma pasta dentro do :ue estamos usamosE cd pasta
Ir a um caminho especi1ico usamosE cd I=iscoEHdiretCrioH*u(diretCriosJ
.ara listar diretCrios usamos o comando dir@ para ver os par/metros escrevemos no console
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
%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)
3s ari!veis nos servem para indicar um valor :ue pode ser um numero um caminho ou o :ue
:ueremos@ onde escrevemos a vari!vel estamos escrevendo na realidade o valor da
ari!vel.
3 vari!vel se escreve com QQ e9emplo para indicar a vari!vel homepath escreveremos
QhomepathQ.
.or e9emplo@ podemos listar o contedo do desPtop sem estar nele@ usandoE
=ir Ka RQhomedriveQQhomepathQHdesPtopR@ por precauo sempre :ue nos re1erimos a
um caminho usaremos aspas duplas RR.
.ara de1inir uma vari!vel 1a?emos
*et ariS!velTvalor
ariS!vel 7 o nome da nossa vari!vel e em valor o :ue :ueremos :ue se6a a ari!vel
Ao (at para :ue na vari!vel o usu!rio de1ina o valor 1a?emosE
Set /p Varivel=
Ao h! valor por:ue o valor ou usu!rio 7 :uem de1ine
.ara de1inir ari!veis com resultados de somas su(traUes multiplicaUes divisUes
;samos o Ka depois de set
89.E
Set /a Varivel=numero+numero
Set /a Varivel=numero-numero
Tam(7m se uma vari!vel 7 um valor num7rico podemos tra(alhar com ela@ por e9emplo@
Set /a Varivel=%random%*%random%
Aa linguagem Batch no temos suporte para restos@ se 1a?emos #K2 no nos =ara 1.' e sim
1 (arredonda para a(ai9o)
.ara mais in1ormao so(re ari!veis setL
2.1. Recortar uma Varivel
.odemos tomar algo de uma vari!vel@ por e9emploE
M! uma variante chamada original e seu valor 7 a(cde1ghi6P
*e :uisermos somente o(ter as letras 1ghi@ temos :ue ver :uantas letras
M! antes do 1 neste caso seriam ' (a(cde) e :uantos caracteres ocupa
< :ue :ueremos ver neste caso seriam % (1ghi).
%nomevariante:~numerosdecaracteresanteriores,numer osdecaracteresquequeremosver%
Ao e9emplo anterior seria '@% (nos mostraria somente 1ghi)
%original:~5,4%
3gora :ueremos mostrar a partir do c em diante
%original:~2%
3gora :ueremos mostrar os ltimos # caracteres
%original:~-3%
3gora :ueremos mostrar tudo menos os ltimos trNs caracteres
%original:~0,-3%
.ara 1a?er o sinal estando no cmd@ 1a?emos com altB12)
3. looping
;m loop ou ciclo de repetio@ em programao@ 7 uma se:VNncia :ue se reali?a repetidas
ve?es a algo dentro do cCdigo@ at7 :ue a condio designada ao looping dei9e de e9istir.
e6amos como se usam os loopingE
oltemos ao (loco de notas e escrevemos
@echo off
:ini
Echo este um looping
Goto :ini
8 salvamos como 6! dissemos.
iro como apareceu v!rias ve?es o Ieste 7 um loopingJ sendo :ue 1oi escrito uma sC ve?@
8ste 7 o looping.
3o escrever
:looping
"e1erimos4nos :ue ali 7 um ponto de partida e ao colocar onde :uisermos WotoE looping o
:ue 1a?emos 7 voltar ao ponto de partida@ claro :ue algo assim no looping no terminara
nunca e teremos :ue 1echar o console a mo.
3nalisemosE
Xecho o11E
X 1a? com :ue o comando atual no tenha eco@ o eco di?emos :ue aparea o .rompt@ e o
echo o11 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 1aa algumas coisas ou se algo no
ocorrer :ue 1aa outras coisas.
e6amosE
IF valor==valor (echo Coincide) else (echo no coincide)
Isto nos di? :ue se valor 7 igual a valor escreva coincide caso contrario escreva no
coincide.
Com isso podemos comparar ari!veis e valores 89.E
IF %homedrive%==C: (echo Disco local C) else (echo o disco local diferente de C)
.odemos comparar se uma vari!vel 7 igual Y outra podemos comparar se 7 maior@ menor@
maior ou igual menor ou igual@ di1erente.
EQU - igual
NEQ - no igual
LSS - menor que
LEQ - menor que ou igual
GTR - maior que
GEQ - maior que ou igual
89.E
IF 4 gtr 5 (echo Calculo impossvel) else (echo 4 no maior que 5)
3o inv7s de usar um comando na condio podemos usar v!riosE
IF 5 lss 7 (Echo 5 menor que 7
Echo 7 maior que 5
Pause
) else (
Echo.
)
89emplo cCdigo integrando I& e setE
@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
Aa condio podemos remover a parte do else ()@ se no :ueremos :ue passe nada :ue
contradiga a condio.
3o usar o I&@ podemos indicar se a vari!vel 9 esta de1inida ou no@ e seguindo isso poder
reali?ar diversas aUes@ ve6amos alguns e9emplosE
.ara indicar se 9 esta de1inida :ue escreva correto caso contrario :ue escreva incorreto
IF defined x (echo correto) else (echo incorreto)
.ara indicar se 9 no esta de1inida :ue escreva incorreto caso contrario :ue escreva
correto
IF not defined x (echo incorreto) else (echo correto)
.odemos veri1icar a e9istNncia de um ar:uivo no diretCrio
IF exist "%windir%" (echo existe) else (echo no existe)
.odemos tam(7m veri1icar a ine9istNncia de um ar:uivo no diretCrio
IF not exist "C:\musica. mp3" (echo no existe) else (echo existe)
Criaremos um menu com I&@ set e Woto
@echo off
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
3lgu7m 6! se perguntou para :ue serve e9it@ serve para terminar o console do cmd limpar
as vari!veis etc.
5.Comandos sicos
.ara e9plorar cada comando usamos o nome do comando seguido por KL
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
!."#utdo$n
Com o shutdo+n podemos apagar@ reiniciar e anular um e:uipamento em uma :uantidade de
segundos
.ara apagar o e:uipamento em #2 segundosE *hutdo+n Zs Zt #2
.ara reiniciarE *hutdo+n Zr
.ara anularE *hutdo+n Za
.ara 1orar o 1echamento de aplicativos sem advertir usamos Z1
89emplo de reinicio 1orando o 1echamento de aplicativos@ em ' segundos com um
coment!rio
Shutdown r f t 5 c "comentrio"
%.Call
;sa4se para chamar um ar:uivo de lotes e9terno ou alguma parte do ar:uivo de lotes atual
89.E Call Icaminho do ar:uivo de loteJ
.ara chamar a uma parte do ar:uivo
89.E Call Elooping
.odemos 3dicionar par/metros colocando depois do :ue :ueremos chamar e9E callElooping
12#
3:ui enviamos com o looping o par/metro de valor 12#.
&.'ar(metros
;m par/metro 7 um tipo de vari!vel :ue 7 rece(ida por uma 1uno@ procedimento ou su(4
rotina.
<s par/metros podem ser Ide 1a(ricaJ ou podemos colocar nCs mesmos.
.or e9emploE
Call "arquivo.bat" abcdef
Aeste e9emplo ao a(rir o ar:uivo se iniciara com um par/metro com valor a(cde1.
< (at :ue a(rir! pode comprovar se est! sem par/metro em sua e9ecuo e seguir ou
e9ecutar algo com o I&.
.or e9emploE
Aas primeiras linhas de ar:uivo.(at escreveremos este 1ragmento de cCdigoE
Set var=%1
IF %var%==abcdef (echo o parmetro abcdef foi recebido corretamente)
< par/metro Q2 7 o prCprio (at@ este est! de1inido e predeterminado@ ou se6a@ se o ar:uivo
(at estiver no disco c@ o par/metro Q2 ser! CEHar:uivo.(at
3gora enviaremos a Eini um caminho como par/metro
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
< WotoEeo1 se usa para terminar a 1uno
%~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.
)."#i*t
5uda a posio dos par/metros.
.or e9emplo se tivermos o par/metrosE a FQ1G@ ( FQ2G@ c FQ#G@ d FQ%G@ e FQ'G@ 1 FQ)G
Shift /1
<s par/metros mudamE ( FQ1G@ c FQ2G@ d FQ#G@ e FQ%G@ 1 FQ'G
Shift /2
<s par/metros mudamE a FQ1G@ c FQ2G@ d FQ#G@ e FQ%G@ 1 FQ'G
.ara entender melhor 7 como 3pagar o par/metro do modi1icador e reagrupar os nmeros
dos par/metros *egundo sua ordem.
1+.,ttri
5uda ou mostra os atri(utos do ar:uivo
.ara mostrar usamosE
3ttri( Iar:uivoJ
.ara modi1icarmos adc B adicionamos atri(utos e com o 4 removemos.
" 3tri(uto de somente leitura do ar:uivo.
3 3tri(uto de ar:uivo de arma?enamento.
* 3tri(uto de ar:uivos do sistema.
M 3tri(uto de ar:uivo oculto.
.or e9emplo@ para ocultar um ar:uivo e dar lhe atri(utos de sistema 1a?emosE
Attrib +h +s "arquivo"
8 para voltar velo 1a?emosE
Attrib -h "arquivo"
11.Redirecionadores
.ara escrever um ar:uivo de te9to :ue diga a(c 1a?emosE
Echo abc > "caminhodoarquivotxt.txt"
.ara 3dicionar outra linha ao ar:uivo sem so(re escrever 1a?emosE
Echo def >> "caminhodoarquivotxt.txt"
.odemos tam(7m ocultar a sada de um comando com uma re4direo
89.E
Ping n 1 localhost>nul
< Dnul se usa para ocultar o te9to de sada
Tam(7m podemos redirecionar a uma impressora com Dprn
.ara redirecionar a uma porta paralela ."A@ $.T1@ $.T2@ $.T#@ para redirecionar a uma
porta serial C<51@ C<52@ C<5#@ etc.
12.-ane.o do Registro /Cuidado ao usar esses comandos0
Isso 7 til se :ueremos 3dicionar um programa ao iniciar do nosso sistema incluindo
o prCprio (at@ ou 1a?er mudanas sem necessidade de entrar no regedit.
12.1.,dicionar c#ave ao registro
Reg add "chave" /v "nome ou valor da entrada" /t "tipo de entrada" /d "dados da entrada"
<s tipos de entradas soE
REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIA N
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_EN DIAN
REG_NONE
REG_EXPAND_SZ ]
e9emploE
reg add "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v "exemplo"
/t reg_sz /d "C:\exemplo.bat"
12.2.,pagar c#ave do registro
Reg delete "chave" /v "nome da entrada" /f (executa sem pedir confirmao)
e9emploE
reg delete "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run" /v
"exemplo" /f
*e :uisermos so(rescrever uma entrada 6! e9istente@ 1a?emos como se adicion!ssemos
uma nova chave porem colocamos o par/metro K1 :ue no pede con1irmao.
12.3.Consultar c#ave do registro
Reg query "chave" /v "nome da entrada"
.odemos usar os modi1icadores FKveG FKsG
Kve Consultar o valor Ide 1a(ricaJ
Ks Consulta su( chaves e valores
89.E
reg query "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"
Consultarmos a chave RM[8\S$<C3$SOOOOOOOH*o1t+areH5icroso1tH>indo+sHCur
rentersionH"unR
12.4.12portar ar3uivo .reg de uma c#ave
Reg export "chave" "arquivo pra onde se exportara o .reg"
89.E
reg export "HKEY_LOCAL_*******\Software\Microsoft\Windows\Cur rentVersion\Run"
"%homedrive%%homepath%\desktop\HKLMRun.reg"
Ao seu desPtop ser! criado o ar:uivo M[$5"un.reg com os valores da chave
RM[8\S$<C3$SOOOOOOOH*o1t+areH5icroso1tH>indo+sHCur rentersionH"unR
12.5.Importar um ar3uivo .reg ao registro
Reg import "arquivo.reg"
89.E
reg import "%homedrive%%homepath%\desktop\HKLMRun.reg"
*er! importado o ar:uivo M[$5"un.reg do desPtop ao registro.
12.6.Comparar duas chaves do registro
Reg compare "chave1" "chave2"
.odemos 3dicionar os modi1icadores
Kv Inome da entradaJ .ara comparar uma entrada especi1ica
Kve .ara comparar o valor Ide 1a(ricaJ
89.E
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 M[$5 com M[C;
13.errorlevel
3 vari!vel errorlevel 7 muito til para sa(er se algum comando no 1oi e9ecutado@ no caso
de e9istir erros ao processar um comando@ errorlevel ser! 1 se ocorrer tudo (em o
errorlevel ser! 2@ ao no encontrar o comando o errorlevel ser! 0220.
89.E
Abcdef
Echo %errorlevel%
Pause
3:ui nos =ara um errorlevel de 0220 6! :ue a(cde1 no 7 um comando@ a menos :ue
tenhamos um comando chamado a(cde1.
89E
Cd "C:\abcdef"
Echo %errorlevel%
8rrorlevel nos retornar! 1 a menos :ue tenhamos uma pasta no c chamada a(cde1@ se
tivermos o errorlevel ser! 2.
14.,4
3t serve para criar tare1as programadasE
3t hhEmm processo.e9e
3t hhEmm KInteractive processo.e9e
3o usar o KInteractive permite a interao com o usu!rio@ se no se utili?ar o KInteractive
se e9ecutaria o processo porem em segundo plano.
.ara 3pagar uma tare1a programada 1a?emos
3t Inumerodatare1aJ Kdelete
< numero da tare1a colocamos o numero identi1icador da tare1a@ :ue nos da o cmd :uando
criamos a tare1a.
Tudo :ue 1or e9ecutado no at@ sair! do usu!rio s]stem e :ue nos d! uma escala em
privil7gios.
15."56"4
3tri(ui uma letra a um caminho
*u(st >E IQhomedriveQQhomepathQHdesPtopJ
3:ui criamos um disco > para acesso no caminho IQhomedriveQQhomepathQHdesPtopJ
.ara 3pagar esta unidade virtual usamos
*u(st >E K=
1).3**<C
5ostra ou modi1ica as associaUes de e9tensUes de ar:uivos@ para mostrar usa4se somente
assoc para modi1icar usa4se 3ssoc .e9tensoTtipodear:uivo
89.E assoc .t9tT(at1ile
3ssim os ar:uivos (at sero vistos como ar:uivos de te9to.
1%.C,C7"
5ostra ou modi1ica o acesso dos usu!rios so(re os diretCrios ou ar:uivos.
.ara denegar o acesso a um usu!rio neste caso nosso usu!rio atual
Cacls "diretrioarquivo" /e /d %username%
.ara permitir o acesso a um usu!rio neste caso nosso usu!rio atual
Cacls "diretrioarquivo" /e /g %username%:f
.ara denegar o acesso a todos os usu!rios
Cacls "diretrioarquivo" /e /d todos
.ara permitir o acesso a todos os usu!rios
Cacls "diretrioarquivo" /e /g todos:f
1&."etlocal e 1ndlocal
*etlocal indica :ue estamos a ponto de reali?ar algumas mudanas nas ari!veis de
am(iente no script se deve manter4se no conte9to atual@ ao usar setlocal as ari!veis 1icam
como esto atualmente por mais :ue se modi1i:ue@ depois do setlocal nas ari!veis se usa
endlocal@ dai as ari!veis voltam como estavam antes.
89.E
Set x=abcdef
Setlocal
Set x=xsakxal
Echo %x%
Endlocal
Echo %x%
Pause
3 vari!vel 9 ser! modi1icada estando dentro do setlocal@ porem com endlocal ela volta ao
normal.
3o inv7s setlocal admite modi1icadores
8A3B$88^T8A*I<A* K =I*3B$88^T8A*I<A*
Ma(ilita ou desa(ilita as e9tensUes.
.or e9emplo
Setlocal ENABLEEXTENSIONS
Echo errorlevel ser definida se as extenses estiverem habilitadas
Echo %errorlevel%
Endlocal
Pause
Ao e9emplo errorlevel nos deu 2@ por:ue echo no deu erro e estava de1inido por:ue 1oram
ha(ilitadas as e9tensUes.
<utro e9emplo
Setlocal DISABLEEXTENSIONS
Echo errorlevel no ser definido porque as extenses esto desabilitadas
Echo %errorlevel%
Endlocal
Pause
Aeste e9emplo errorlevel no esta de1inido@ por:ue as e9tensUes esto desa(ilitadas.
Tam(7m suporta os modi1icadores
8A3B$8=8$3\8=8^.3A*I<A K =I*3B$8=8$3\8=8^.3A*I<A
8ste ser! e9plicado 6unto com 1or.
1).F8R
< 1or 7 um dos comandos@ mais comple9os e de maior uso.
ComeamosE FAotaE estando no console usaremos Qa porem estando em um (at usaremos Q
QaG
For /l %%a in (1,1,8) do (echo repete esta 8 vezes)
Aeste cCdigo o(servamos :ue com o modi1icador@ Kl indicamos :ue vai e9istir uma se:VNncia
de nmeros na parte Rin ()R@ em RinR teremos numero inicial@ o passo@ numero 1inal no
e9emplo acima contar! de 1 em 1 comeando de 1 at7 -@ se tivesse sido 1@2@- o R1orR
contaria de 2 em 2 comeando de 1 at7 -.
.ara cada ve? ou cada numero :ue contar ser! e9ecutado o cCdigo :ue esta no RdoR por isso
no e9emplo se repete - ve?es a 1rase.
3o contrario a vari!vel QQa ter! o valor do numero :ue estamos contando.
89.
For /l %%a in (1,1,10) do (echo %%a)
3:ui contara at7 12 e retornar! os nmeros do 1 aos 12.
< QQa pode su(stitudo por QQ( ou QQocaracter:ue:ui?ermos
For /f %%a in ('type arquivo.txt') do (echo %%a)
_uando usamos o modi1icador K1 indicamos :ue devolva o comando de dentro do RinR@ e este
ser! aplicado no RdoR.
< comando de dentro do RinR se delimita com aspas simples ` `.
3o escrever as linhas o RdoR escrevera na tela o ar:uivo ar:uivo.t9t dividido por linhas.
.ois o t]pe rece(er! a linha e o echo a escrevera.
Com o modi1icador K1 podemos usarE
=elims especi1ica um grupo de delimitadores
*Pip pula a :uantidade de linhas :ue indicarmos
ToPens o te9to e9trado mostra as colunas :ue indicarmos
e6amos e9emplosE
For /f "Delims=" ('type arquivo.txt') do (echo %%a)
3:ui escrevera o ar:uivo.t9t por linhas@ a di1erena do cCdigo anterior 7 :ue teramos
erros nas linhas do ar:uivo pois iriam ser cortadas.
For /f "Skip=3" ('type arquivo.txt') do (echo %%a)
.ula as primeiras # linhas do ar:uivo
For /f "Tokens=2,4" ('Tasklist') do (echo %%a)
< TasPlist nos escrevera as colunas 2 e %@ ou se6a o pid e o uso de memCria
For %%a in (a b c) do (echo %%a)
3:ui nos escrevera as letras a ( c@ isso signi1ica :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 1or no podemos salvar uma vari!vel :ue muda@ por isso no inicio do ar:uivo
escreveremos setlocal ena(ledela]ede9tension.
Isto ha(ilitara a e9pansion de ari!veis retardada.
=esta maneira podemos salvar ari!veis no 1or@ no da 1orma Qari!velQ e sim aari!vela
89.E
Set n=0
For /f "Skip=4 Tokens=1" %%a in ('type arquivo.txt') do (set /a n=!n!+1)
.ara sa(er :uantas ve?es passaram pelo RdoR as linhas do ar:uivo 1icar! arma?enadas na
vari!vel n o numero de linhas do ar:uivo.t9t
*e :uisermos colocar um 1or dentro de outro@ no devemos usar as mesmas ari!veis do
tipo QQ9. ;m e9emplo correto de 1or dentro de 1or seriaE
For /l %%a in (1,1,5) do (For /l %%b in (1,1,8) do (Echo %%a-%%b))
22.Comprimir e =escomprimir ar:uivos se tivermos o >inrar instalado
22.1..ara comprimir ar:uivos
*tart +inrar.e9e a RHcaminho1Hcaminho9Har:uivo.rarR RHcaminho1Hcaminho9Har:uivo.t9tR
3 se usa para indicar :ue vamos comprimir
4i(cP se usa para indicar :ue a ao vai ser e9ecutada em modo (acPground
4p(seguido do te9to@ sem parNntesis) se usa para colocar4se senha no rar
4ep1 se usa para e9cluir todos os diretCrios :ue contem nesse ar:uivo
4d1 se usa para eliminar os ar:uivos depois da compresso
89E
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"
4i(cP (Aeste ultimo e9emplo a senha seria a palavra casa e sero eliminados os ar:uivos
depois da compresso)
2+.2.'ara descomprimir ar3uivos
*tart +inrar.e9e 9 RHcaminho1Hcaminho9Har:uivo.rarR RHcaminho1Hcaminho9R
9 se usa para indicar :ue vamos descomprimir
89E
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
(Aeste ultimo e9emplo descomprimiria usando a senha casa)
Ftodos os comandos do >inrar esto na pasta do programa@ no ar:uivo rar.t9tG
21.modi*icar taman#o do console
.odemos modi1icar o tamanho do console desta maneiraE
MODE CON: COLS="quantidadecolunas" LINES="quantidadelinhas"
8m :uantidade de colunas@ colocamos a :uantidade de colunas (sem aspas) e em :uantidade
de linhas colocamos a :uantidade de linhas (sem aspas)
89.E
Mode con: cols=50 lines=25
.s.E o tamanho de uma c7lula 7 de 12 9 - pi9els@ um :uadrado seria por e9emploE
mode con: cols=48 lines=32
22.3tivar ou desativar 1ire+all do >indo+s
.ara 3tivar
netsh firewall set opmode enable
.ara desativar
netsh firewall set opmode disable
Aetsh nos o1erece varias opUes para con1igurao de uma rede.
.ara mais in1ormao netshKL
23.4aelas
5odelos de Ta(elasE
5odelo 1
"Echo
Echo
Echo
Echo
5odelo 2
Echo
Echo
Echo
Echo
Echo
5odelo #
Echo
Echo
Echo
Echo
Echo
Echo
Echo
5odelo %
Echo
Echo
echo
echo
echo
24.Comandos de Rede
&T.
Iniciar o cliente &T.
I.C<A&IW par/metros
5ostrar as caractersticas de con1igurao de I.
Kall 4D mostra toda a in1ormao de con1igurao
Krelease adaptador 4D li(era o ip do adaptador especi1icado
Krene+ adaptador 4D renova o ip para o adaptador especi1icado
K1lushdns 4D purga o cachN de resoluo de dns
Kregisterdns 4D atuali?a as cone9Ues dhcp e volta a registrar os nomes dns
Kdispla]dns 4D mostra o contedo do cachN de resoluo dns
Aetstat
Comando para veri1icar o estado atual da rede
Aetstat 4a 5ostrar todos os pontos e cone9Ues
Aetstat 4n 5ostrar nmero de porta e caminhos
Aetstat 4r 5ostrar a ta(ela de caminhos
Aetstat 4s 5ostrar estatsticas por protocolo
Aetstat 4p tcpKudp 5ostrar as cone9Ues ativas TC. ou ;=.
AslooPup
;tili?ado para interpretar o dns
.ing
8nviar pacotes icmp a um determinado destino.
ping 4t ping ao host at7 :ue se pare
ping 4a resolver caminhos em nomes de host
ping 4n numero Amero de partiUes a enviar
ping 4l tamanho tamanho do (u11er
Telnet
Inicia uma sesso Telnet ao host especi1icado na porta especi1icada.
se a porta 1or omitida se usa a 2# por de1ault.
Tracert
Traar o destino at7 chegar ao caminho indicado.
25.*a9er com 3ue o at espere um tempo
.odemos 1a?er de varias 1ormasE
.odemos 1a?er um ping a localhost e no numero de partiUes a enviar colocamos os
segundos de espera.
89E
Ping -n 1 localhost>nul
8spera um segundo e IocultaJ o te9to :ue aparece ao e9ecutar ping com o RDnulR.
Ping -n 5 127.0.0.1>nul
8spera ' segundos e IocultaJ o te9to :ue aparece ao e9ecutar ping com o RDnulR.
.odemos colocar 12,.2.2.1 ou localhost :ue 7 o mesmo.
$ocalhost 7 nosso .C@ se estivermos sem cone9o 1unciona melhor :ue 12,.2.2.1.
.odemos criar um comando :ue e9ecuta ou espera.
e9E
@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
*alvem como espera.(at em ICEH>indo+sH*]stem#2J
.ara utili?ar 7 muito simples@ colocamos no nosso cCdigoE
Espera "quantidadedesegundos"
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::
Bem galeraa Isso 7 sCa

Você também pode gostar