If

Realiza processamento condicional em programas em lotes.

Sintaxe

if [noterrorlevel número comando[else expressão]

if [notsequência1==sequência2 comando [else expressão]

if [notexist nome_do_arquivo comando [else expressão]

Se as extensões de comando estiverem ativadas, use a seguinte sintaxe:

if [/isequência1 operador_de_comparação sequência2 comando [else expressão]

if cmdextversion número comando [else expressão]

if defined variável comando [else expressão]

Parâmetros

not
Especifica que o comando só deve ser executado se a condição anterior for falsa.
errorlevel número
Especifica uma condição verdadeira somente se o programa executado anteriormente pelo Cmd.exe tiver retornado um código de saída maior ou igual a número.
comando
Especifica o comando que deve ser executado se a condição anterior for atendida.
sequência1==sequência2
Especifica uma condição verdadeira somente se sequência1 e sequência2 forem iguais. Esses valores podem ser sequências de caracteres literais ou variáveis em lote (%1, por exemplo). Não é necessário delimitar as sequências de caracteres literais com aspas.
exist nome_do_arquivo
Especifica uma condição verdadeira, se nome_do_arquivo existir.
operador_de_comparação
Especifica um operador de comparação com três letras. A tabela a seguir lista os valores válidos para operador_de_comparação.
Operador Descrição
EQU igual a
NEQ diferente de
LSS menor que
LEQ menor ou igual a
GTR maior que
GEQ maior ou igual a
/i
Força as comparações de sequências de caracteres a ignorar maiúsculas e minúsculas. Você pode usar /i na forma sequência1==sequência2 de if. Estas comparações são genéricas, assim, se sequência1 e sequência2 compreenderem todos os dígitos numéricos, as sequências serão convertidas em números e uma comparação numérica será realizada.
cmdextversion número
Especifica uma condição verdadeira apenas se o número interno da versão associado ao recurso de extensões de comando do Cmd.exe for maior ou igual a número. A primeira versão é 1. Ela é incrementada de um quando melhorias significantes são adicionadas às extensões de comando. A condicional cmdextversion nunca é verdadeira quando as extensões de comandos estão desativadas (por padrão, as extensões de comando estão ativadas).
defined variável
Especifica uma condição verdadeira, se variável estiver definida.
expressão
Especifica um comando e quaisquer parâmetros de linha de comando a ser passado ao comando em uma cláusula else.
/?
Exibe ajuda no prompt de comando.

Comentários

Exemplos

Se não for possível localizar o arquivo Produto.dat, aparecerá a seguinte mensagem:

if not exist produto.dat echo Não é possível localizar o arquivo de dados

O exemplo a seguir ilustra uma mensagem de erro caso ocorra um erro durante a formatação de um disco na unidade A:

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo Ocorreu um erro durante a formatação.
:end
echo Fim do programa em lotes.

Se não houver erro, a mensagem de erro não será mostrada.

O comando if não pode ser utilizado para testar diretamente uma pasta, mas o dispositivo nulo (NUL) existe em todas as pastas. Portanto, você pode testar o dispositivo nulo para determinar se a pasta existe. O exemplo a seguir testa a existência de uma pasta:

if exist c:meudir\nul goto processXOX