Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Executa o processamento condicional em programas em lotes.
Sintaxe
if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]
Se as extensões de comando estiverem habilitadas, use a seguinte sintaxe:
if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]
Parâmetros
Parâmetro | Descrição |
---|---|
não | Especifica que o comando deve ser realizado somente se a condição for falsa. |
<number> de nível de erro |
Especifica uma condição verdadeira somente se o programa anterior executado por Cmd.exe retornar um código de saída igual ou maior que número. |
<command> |
Especifica o comando que deve ser executado se a condição anterior for atendida. |
<string1>==<string2> |
Especifica uma condição verdadeira somente se cadeia de caracteres1 e string2 forem iguais. Esses valores podem ser cadeias de caracteres literais ou variáveis de lote (por exemplo, %1 ). Você não precisa colocar cadeias de caracteres literais entre aspas. |
existem <filename> |
Especifica uma condição verdadeira se o nome do arquivo especificado existir. |
<compareop> |
Especifica um operador de comparação de três letras, incluindo:
|
/eu | Força as comparações de cadeia de caracteres a ignorar maiúsculas e minúsculas. Você pode usar /i na forma string1==string2 de se. Essas comparações são genéricas, pois se cadeia de caracteres1 e cadeia de caracteres2 forem compostas apenas por dígitos numéricos, as cadeias de caracteres serão convertidas em números e uma comparação numérica será executada. |
cmdextversion <number> |
Especifica uma condição verdadeira somente se o número de versão interno associado ao recurso de extensões de comando de Cmd.exe for igual ou maior que o número especificado. A primeira versão é 1. Ele aumenta por incrementos de um quando melhorias significativas são adicionadas às extensões de comando. O cmdextversion condicional nunca é verdadeiro quando as extensões de comando são desabilitadas (por padrão, as extensões de comando estão habilitadas). |
definido <variable> |
Especifica uma condição verdadeira se variável estiver definida. |
<expression> |
Especifica um comando de linha de comando e todos os parâmetros a serem passados para o comando em uma cláusula outro. |
/? | Exibe a ajuda no prompt de comando. |
Observações
Se a condição especificada em um se cláusula for verdadeira, o comando que segue a condição será executado. Se a condição for falsa, o comando no se cláusula for ignorada e o comando executar qualquer comando especificado na cláusula outro.
Quando um programa é interrompido, ele retorna um código de saída. Para usar códigos de saída como condições, use o parâmetro de de nível de erro.
Se você usar definido, as três variáveis a seguir serão adicionadas ao ambiente: %errorlevel%, %cmdcmdline%e %cmdextversion%.
%errorlevel%: expande para uma representação de cadeia de caracteres do valor atual da variável de ambiente ERRORLEVEL. Essa variável pressupõe que ainda não haja uma variável de ambiente existente com o nome ERRORLEVEL. Se houver, você obterá esse valor ERRORLEVEL.
%cmdcmdline%: expande para a linha de comando original que foi passada para Cmd.exe antes de qualquer processamento Cmd.exe. Isso pressupõe que ainda não haja uma variável de ambiente existente com o nome CMDCMDLINE. Se houver, você obterá esse valor CMDCMDLINE.
%cmdextversion%: expande para a representação de cadeia de caracteres do valor atual de cmdextversion. Isso pressupõe que ainda não haja uma variável de ambiente existente com o nome CMDEXTVERSION. Se houver, você obterá esse valor CMDEXTVERSION.
Você deve usar a cláusula mais na mesma linha que o comando após o se.
Exemplos
Para exibir a mensagem Não é possível localizar o arquivo de dados se o arquivo Product.dat não puder ser encontrado, digite:
if not exist product.dat echo Cannot find data file
Para formatar um disco na unidade A e exibir uma mensagem de erro se ocorrer um erro durante o processo de formatação, digite as seguintes linhas em um arquivo em lote:
:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.
Para excluir o arquivo Product.dat do diretório atual ou exibir uma mensagem se Product.dat não for encontrado, digite as seguintes linhas em um arquivo em lote:
IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)
Observação
Essas linhas podem ser combinadas em uma única linha da seguinte maneira:
IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)
Para ecoar o valor da variável de ambiente ERRORLEVEL depois de executar um arquivo em lote, digite as seguintes linhas no arquivo em lote:
goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!
Para ir para o rótulo ok se o valor da variável de ambiente ERRORLEVEL for menor ou igual a 1, digite:
if %errorlevel% LEQ 1 goto okay