Professional Documents
Culture Documents
Introduo
Antes de tudo, indicar o porqu os processos so chamados batch. A razo por ele se
chamar bat porque no ms-dos requere-se como mximo trs letras na extenso e por
tanto os arquivos tem a extenso .bat
Comandos;
Aqui esto alguns comandos utilizados em batch.
ECHO [mensagem ou varivel]
Escreve na tela
ECHO OFF
Desativa as informaes e confirmaes feitas pelo sistema. Como "C:>", "Tem certeza
que deseja fazer tal?"....
ECHO ON
Ativa as informaes e confirmaes do sistema.
ECHO.
Pula uma linha
SET variavel=valor
Cria ou modifica uma varivel (espao reservado temporariamente na memria RAM
para guardar algumas informaes nmericas, de caractres, positivo/negativo entre
outros. No podem ter acento e devem comear com letra). Para chamar a varivel
posteriormente basta coloca-la entre "%".
Por exemplo:
SET nome=Storm
ECHO O nome dele %nome%
:nomedolink
Nomeia um ponto do arquivo de lote permitindo avanar ou voltar a execuo apartir
daquele ponto.
CLS
Esse comando limpa toda a tela. CLear Screen.
@[Comando]
Desativa as informaes e confirmaes feitas pelo sistema apenas para esta linha.
CODE
IF [condio] (
[ao]
) ELSE (
[ao2]
)
Esse um comando condicional. "Se condio faa ao, seno faa ao2".
Por exemplo:
CODE
@ECHO OFF
SET nome=Storm
IF "%nome%"=="Storm" (
ECHO Ola Storm!
) ELSE (
ECHO Ola %nome%!
)
GOTO [ponto]
Avana ou volta a execuo para um ponto do arquivo de lote.
FOR /L %%variavel IN (inicio,incremento,fim) DO comando [parmetro]
Repete um comando varias vezes fazendo incrementaes at o fim ser atingido.
/L, uma opo do comando FOR que faz as incrementaes.
%%variavel, o nome da varivel que vai ser incrementada.
inicio, o valor de inicio da varivel que ser incrementada.
incremento, nmero que ser somado a cada incrementao.
fim, a repetio ir acabar quando o valor da varivel atingir este valor.
comando, um comando que ser repetido.
[parmetro], o parmetro do comando que ser repetido.
Por exemplo:
CODE
@ECHO OFF
FOR /L %%a IN (1,1,5) DO ECHO O valor de A %%a
PAUSE
Faz uma pausa e s volta quando o usurio apertar alguma tecla do teclado.
REM [comentrio]
Este comando no faz absolutamente nada. Ele utilizado para inserir comentarios nos
arquivos.
CODE
PROMPT ->Serve para abrir o prompt do msdos. O mais habitual $p$g que
corresponde a;
$p = mostrar trajeto atual
$g = mostrar o separador >
$l = mostrar o separador <
$b = mostrar o separador |
$q = mostrar o separador =
$$ = mostrar o sinal $
$t = mostrar a hora
$d = mostrar a data
$v = mostrar a verso do sistema
$n = mostrar unidade atual
$h = retroceso. Apaga o caracter previo
$e = esc. Mostra o sinal corresponde a asci 27
Por isso se colocarmos prompt $p$g o cursor mostra a tragetria de onde estamos e logo
o separador. possvel o texto ( por exemplo prompt Meu_nome $p$g
DATE
Ver/por a data do sistema
TIME
Ver/por a hora do sistema
VER[/font]
Verso do sistema
[font=Verdana]VOL unidade
Volume da unidade especificada
MEM parametros
Mostra a memoria usada e livre no sistema
/p -> mostra por programas
/d -> por programas econtroladores
/c -> classifica por tamanho
DEL arquivo(s)
Apagar arquivos selecionados
del lol.txt (apaga o arquivo lol.txt no diretrio atual)
del c:\lol.txt (apaga o arquivo lol.txt que se encontra no c:\)
del arquiv~1\*.*(apaga os arquivos que se encontram no diretrio 'Arquivos de
programa' cujo nome curto arquiv~1( no se apaga as subpastas)
DELTREE arquivo(s) -y
Apaga a raz especificada ( se um arquivo coloca o arquivo, se uma pasta coloca a
pasta com todas as subpastas que incluam).
Com o parametro -y no pergunta cada vez
Este comando na realidade no um comando sim uma utilidade includa no ms-dos.
DIR trajeto
Mostra uma lista do contedo do diretrio especificado no trajeto. Se no especificado
nada, se entende o atual.
Se coloca como parametro /W mostra uma lista resumida
Se coloca como parametro /P mostra uma lista utilizando o filtro more.
ATTRIB arquivo(s)-> Mostra os arquivos dos diretrios indicados e nesse caso permite
mud-los.
os atributos so:
H -> oculto. Se ativa com +h e desativa com -h
R -> Leitura. Apenas leitura com +r, normal com -r
S -> Sistema. Se ativa com +s e desativa com -s
A -> Modificado. Para copias de segurana incrementadas. +a indica modificado e -a
indica no modificado.
Attrib arquivostorm.txt (mostrar os atributos do arquivostorm.txt)
attrib *.exe +r +r +s (coloca todos os arquivos com extenso exe como ocultos, do
sistema e a apenas l)
RENAME o REN nome1 nome2
Mudar o nome do arquivo
Ren nome1.txt nome2.txt
TYPE arquiivo
Arquivos
A condio EXIST verifica se existe algum arquivo. Por exemplo, se existir o arquivo
"exemplo.bat" o resultado ser positivo, seno negativo.
Esta condio no para por a. No sistema MS-DOS, voc pode fazer uma "pesquisa" na
pasta em que est por um arquivo digitando parte dele. Voc usa "*" para indicar a(s)
parte(s) que voc no sabe. Por exemplo, se existir algum arquivo com a extenso ".bat"
na pasta atual o resultado ser positivo, seno negativo.
Veja como ficaria:
CODE
@ECHO OFF
IF EXIST *.bat (ECHO Positivo ) ELSE ( ECHO Negativo )
X igual a 6?
@ECHO OFF
CLS
SET X=6
IF "%X%" == "6" GOTO ok
ECHO X no igual a 6, X igua a %X%
GOTO saida
ok
ECHO X igual a 6
:saida
Na primeira linha. O "@" indica que no para aparecer o comando que segue, no caso,
"ECHO" (Comando que escreve na janela). Nesta linha, eu estou grosseiramente
mandando o MS-DOS calar a boca (no falar nada sem eu mandar), pois se ECHO faz o
computador "falar", ECHO OFF faz o computador "desligar a boca" e com o @ no
comeo da linha, ele nem vai informar ao usurio que est parando de falar.
Na segunda linha, o comando CLS faz o MS-DOS apagar toda a tela.
Na terceira linha, como j foi explicado, faz a varivel X=6.
Na quarta linha, uma linha condicional. Se "X" for igual 6 v para "ok".
Na quinta linha, bivio que X no vai ser igual a 6, ento o MS-DOS vai "falar" X no
igual a 6, X igua a [valor de x].
Na sexta linha, ele ir para o ponto "saida" porque o resto feito se X for igual a 6.
Na stima linha, est sendo definido o ponto "ok", aquele ponto citado na quarta linha.
Na oitava linha, X ser igua a 6, ento o MS-DOS vai dizer X igual a 6.
E na nona linha, definido o ponto-final do processamento. Que chamado na sexta
linha, nada mais que isso, ento o MS-DOS entende que o batch concluiu.
Faa o teste
1. Abra o Bloco de notas do Windows;
Esta uma forma mais avanada de usar o comando condicional IF. Isso quase
idntico a Algoritmo. Ele avalia a varivel %idade%. Se %idade% for menor que 10
ento escreva tal; Seno, se %idade% for menor que 18 ento escreva tal; Seno se
%idade% for menor ou igual a 64 ento escreva tal; Seno obviamente %idade%
maior que 64, ento imprima tal.
Faa o teste
1. Abra o Bloco de notas do Windows;
2. Copie o exemplo acima e cole nele
3. Salva-o como exemplo2.bat;
4. D dois-clicks nele observe o que acontecer;
5. Agora experimente modificar a segunda linha por SET idade=n (troque n por algum
nmero);
6. Execute e veja o que acontece.
Programando;
Existe uma infinidade de comandos, como mostrei acima, e s usar a imaginao e
podemos programar uma imensido de finalidades, basta usar a criatividade e alguns
comandos, para fechar esse tutorial, vou abordar alguns cdigos feito por mim.
Exemplo 1 (Bsico)
-fazer um loop que pegue todos os nomes dos diretorios
-dentro de cada diretorio, renomear todos os arquivos com a extenso .txt para .zip
CODE
@echo off
rem *.txt *.zip
@exit
Exemplo 2 (Intermedirio/Avanado)
CODE
@echo off
cls
Echo Batch feito por Storm
Echo .
Echo .
Echo Comear o programa?
pause
Echo .
Echo .
Echo .
Echo Este programa cria uma chave de inicializaao de um arquivo no windows atravs
do menu.
Echo .
Echo .
Echo [1] Deseja que esse arquivo se inicie no seu proximo logon?
Echo [2] Deseja sair do programa?
Set /p choice=Digite o numero correspodente a sua opao:
if "%choice%"=="2" goto op2
if "%choice%"=="1" goto op1
rem Bloco de declaraao dos gotos
op1 reg add "hklm\Software\Microsoft\Windows\CurrentVersion\Ru n" /v teste2 /t