Ferramentas de Linha de Comando

Comando If


( Retorna à Lista completa de comandos Shell )

Comando If


Realiza processamento condicional em programas em lotes.

Sintaxe
if [not] errorlevel número comando[else expressão]

if [not] seqüência1==seqüência2 comando [else expressão]

if [not] exist nome_do_arquivo comando [else expressão]

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

if [/i] seqüência1 operador_de_comparação seqüê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.
seqüência1==seqüência2
Especifica uma condição verdadeira somente se seqüência1 e seqüência2 forem iguais. Esses valores podem ser seqüências de caracteres literais ou variáveis em lote (%1, por exemplo). Não é necessário delimitar as seqüê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 seqüências de caracteres a ignorar maiúsculas e minúsculas. Você pode usar /i na forma seqüência1==seqüência2 de if. Estas comparações são genéricas, assim, se seqüência1 e seqüência2 compreenderem todos os dígitos numéricos, as seqüê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
Se a condição especificada em um comando if for verdadeira, o comando seguinte à condição será executado. Se a condição for falsa, o comando na cláusula if será ignorado e os comandos na cláusula else serão executados caso ela tenha sido especificada.
Quando um programa pára, ele retorna um código de saída. É possível usar os códigos de saída como condições utilizando-se o parâmetro errorlevel.
Usando defined variável
Se você usar defined variável, as três seguintes variáveis serão adicionadas: %errorlevel%, %cmdcmdline% e %cmdextversion%.

%errorlevel% expande uma representação de seqüência do valor atual de errorlevel, desde que não exista ainda uma variável de ambiente com o nome ERRORLEVEL; nesse caso, você obterá o valor dessa variável. O exemplo a seguir ilustra como você pode usar errorlevel depois de executar um programa em lotes:

goto resposta%errorlevel%
:resposta0
:resposta1
echo O programa retornou o código 1
goto end
:end
echo concluído!

Você também pode usar os operadores de comparação operador_de_comparação da seguinte forma:

if %errorlevel% LEQ 1 goto okay
%cmdcmdline% expande a linha do comando original passada para Cmd.exe antes de qualquer processamento pelo Cmd.exe, desde que não exista ainda uma variável de ambiente com o nome cmdcmdline; nesse caso, você obterá o valor de cmdcmdline.

% cmdextversion % expande uma representação de seqüência do valor atual de cmdextversion, desde que não exista ainda uma variável de ambiente com o nome CMDEXTVERSION; nesse caso, você obterá o valor de CMDEXTVERSION.

Usando a cláusula else
A cláusula else deve ser usada na mesma linha que o comando após if. Por exemplo:

IF EXIST nome_do_arquivo. (
del nome_do_arquivo.
) ELSE (
echo nome_do_arquivo. ausente.
)
O código a seguir não 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 código a seguir não funciona porque a cláusula 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 instrução original:

IF EXIST nome_do_arquivo. (del nome_do_arquivo.) ELSE echo nome_do_arquivo. ausente
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á exibida.

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 process

Sistemas Operacionais | Linux Comandos | Linux Shell Script | Atalhos do Office | Literatura e Leitura | Principais Autores | História da Literatura |


Formatando legenda
FormatoSignificado
Itálico Informações que o usuário deve fornecer
Negrito Elementos que o usuário deve digitar exatamente como mostrado
Reticências (...) Parâmetro que pode ser repetido várias vezes em uma linha de comando
Entre colchetes ([]) Itens opcionais
Entre chaves ({});opções separadas por barra vertical (|).Exemplo: {even|odd}Conjunto de opções entre as quais o usuário deve escolher apenas uma
Fonte Courier Código ou resultado de um programa


Envie seu comentário:
Nome:

E-mail:

Comentário:


Fonte: •Manual do Windows XP • ( Literatura e Leitura ) • ( Dicas sobre Sistemas Operacionais ) • ( Retorna à Lista completa de comandos Shell ) •