Professional Documents
Culture Documents
If
O comando realiza processamento condicional em programas em lotes.
Sintaxe
if [not] errorlevel Nmero Comando [else Expresso]
if [not] Seqncia1==Comando da Seqncia2 [else Expresso]
if [not] exist Nome_de_Arquivo Comando [else Expresso]
Se as extenses de comando estiverem ativadas, use a seguinte sintaxe:
if [/i] Seqncia1 Operador_de_Comparao Seqncia2 Comando [else Expresso]
if cmdextversion Nmero Comando [else Expresso]
if defined Varivel Comando [else Expresso]
Parmetros
not
Especifica que o comando s deve ser executado se a condio anterior for
falsa.
errorlevel Nmero
Especifica uma condio verdadeira somente se o programa executado
anteriormente por Cmd.exe tiver apresentado um cdigo de sada igual ou
superior aNmero.
Comando
Especifica o comando que deve ser executado se a condio anterior for
atendida.
Seqncia1 == Seqncia2
Especifica uma condio verdadeira somente
se Seqncia1 e Seqncia2 forem iguais. Esses valores podem ser
seqncias literais ou variveis em lotes (%1, por exemplo). No
necessrio delimitar as seqncias de caracteres literais com aspas.
exist Nome_do_Arquivo
Especifica uma condio verdadeira, se Nome_do_Arquivo existir.
operador_de_comparao
Especifica um operador de comparao com trs letras. A tabela a seguir
lista os valores vlidos para Operador_de_Comparao.
Operador
EQU
Descrio
igual a
NEQ
diferente de
LSS
menor que
LEQ
menor ou igual a
GTR
maior que
GEQ
maior ou igual a
/i
Fora as comparaes de seqncias de caracteres a ignorar maisculas e
minsculas. Voc pode usar /i na forma Seqncia1==Seqncia2 de if.
Essas comparaes so genricas, ou seja, se
tanto Seqncia1 quanto Seqncia2 forem constitudas de dgitos
numricos, as seqncias sero convertidas em nmeros e uma comparao
numrica ser realizada.
cmdextversion Nmero
Especifica uma condio verdadeira somente se o nmero da verso interna
associado ao recurso de Extenses de Comando do Cmd.exe for igual ou
superior a Nmero. A primeira verso 1. Ela incrementada de um quando
melhorias significantes so adicionadas s extenses de comando. A
condicionalcmdextversion nunca verdadeira quando as extenses de
comandos esto desabilitadas (por padro, as extenses de comando esto
habilitadas).
defined Varivel
Especifica uma condio verdadeira, se Varivel estiver definida.
Expresso
Especifica um comando e parmetros de linha de comando a serem
passados ao comando em uma clusula else.
/?
Exibe ajuda no prompt de comando.
Comentrios
:answer1
echo Programa apresentou cdigo 1
goto End
:end
echo done!
Voc tambm pode usar os operadores de
comparao Operador_de_Comparao da seguinte forma:
if %errorlevel% LEQ 1 goto okay
%cmdcmdline% expandido na linha de comando original passada para
Cmd.exe antes de qualquer processamento do aplicativo, desde que no haja
uma varivel de ambiente com o nome CMDCMDLINE; nesse caso, voc obteria o
valor dessa varivel.
% cmdextversion % expandido em uma representao de seqncias do
valor atual de cmdextversion, desde que no haja uma varivel de ambiente
com o nome CMDEXTVERSION; nesse caso, voc obteria o valor de dessa
varivel.
Usando a clusula else
A clusula else deve ser usada na mesma do comando aps if. Por exemplo:
IF EXIST Nome_do_Arquivo. (
del Nome_do_Arquivo.
) ELSE (
echo Nome_do_Arquivo. ausente.
)
O cdigo a seguir no funciona porque o comando del deve ser finalizado com
uma nova linha:
IF EXIST Nome_do_Arquivo. del Nome_do_Arquivo. ELSE echo
Nome_do_Arquivo. ausente
O cdigo a seguir no funciona porque a clusula else deve estar na mesma
linha que o final do comando if:
IF EXIST Nome_do_Arquivo. del Nome_do_Arquivo.
ELSE echo Nome_do_Arquivo. ausente
Se desejar formatar tudo em uma nica linha, use a seguinte forma da instruo
original:
IF EXIST Nome_do_Arquivo. (del Nome_do_Arquivo.) ELSE echo
Nome_do_Arquivo. ausente
Exemplos
Para exibir a mensagem "Impossvel localizar arquivo de dados" caso o arquivo
Produto.dat no seja encontrado, digite:
if not exist produto.dat echo Impossvel localizar arquivo de dados
O exemplo a seguir ilustra uma mensagem de erro caso ocorra um erro durante a
formatao de um disco na unidade A:
:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo Ocorreu um erro durante a formatao.
:end
echo Fim do programa em lotes.
Se no houver erro, a mensagem de erro no ser exibida.
Legenda da formatao
Formato
Itlico
Significado
Informaes que o usurio deve
fornecer
Negrito
Reticncias (...)
Itens opcionais
Courier font