Comando Call
Chama um programa em lotes a partir de outro, sem interromper o programa em lotes pai. O comando call aceita rótulos como o destino da chamada. Call não tem efeito algum na linha de comando quando usado fora de um script ou arquivo em lotes.
Sintaxe
call [[unidade:][caminho] nome_de_arquivo [parâmetros_em_lotes]] [:rótulo [argumentos]]
Parâmetros
[unidade:][caminho] nome_de_arquivo
Especifica o local e o nome do programa em lotes a ser chamado. O parâmetro nome_de_arquivo deve ter uma extensão .bat ou .cmd.
parâmetros_em_lotes
Especifica qualquer informação de linha de comando exigida pelo programa em lotes, incluindo opções de linha de comando, nomes de arquivo, parâmetros em lotes (isto é, %0 a %9) ou variáveis (por exemplo, %taxa_de_transmissão%).
:rótulo
Especifica o rótulo para o qual o controle do programa em lotes deverá saltar. O uso do comando call com esse parâmetro criará um novo contexto de arquivo em lotes e passará o controle para a instrução posterior ao rótulo especificado. Na primeira vez que o final do arquivo em lotes for encontrado (isto é, após o controle saltar para o rótulo), o controle retornará para a instrução após a instrução call. Na segunda vez que o final do arquivo em lotes for encontrado, o script em lotes será finalizado. Para obter uma descrição da extensão de goto :eof que permite retornar de um script em lotes, consulte Tópicos relacionados.
argumentos
Especifica qualquer informação de linha de comando passada para a nova instância do programa em lotes que começa com at :rótulo, incluindo opções de linha de comando, nomes de arquivo, parâmetros em lotes (isto é, %1 a %9) ou variáveis (por exemplo, %taxa_de_transmissão%).
/?
Exibe informações de ajuda no prompt de comando.
Comentários
Usando parâmetros em lotes
Os parâmetros em lotes podem conter qualquer informação que pode ser passada para um programa em lotes, incluindo opções de linha de comando, nomes de arquivo, parâmetros em lotes (isto é, %0 a %9) ou variáveis (por exemplo, %taxa_de_transmissão%). Para obter mais informações sobre parâmetros em lotes, consulte Tópicos relacionados.
Usando pipes e símbolos de redirecionamento
Não utilize pipes e símbolos de redirecionamento com o comando call.
Fazendo uma chamada recursiva
É possível criar um programa em lotes que chama a si mesmo, porém, é necessário fornecer uma condição de saída. Caso contrário, os programas em lotes pai e filho poderão permanecer em loop indefinidamente.
Trabalhando com extensões de comando
Com as extensões de comando ativadas (isto é, o padrão), o comando call aceita um rótulo como destino da chamada. A sintaxe correta é a seguinte:
call :rótulo argumentos
Para obter mais informações sobre como ativar e desativar extensões de comando, consulte cmd em Tópicos relacionados.
Exemplos
Para executar o programa Verifnov.bat a partir de outro programa em lotes, digite o comando a seguir no programa em lotes pai:
call verifnov
Se o programa em lotes pai aceitar dois parâmetros em lotes e você desejar passar esses parâmetros para o arquivo Verifnov.bat, use o comando a seguir no programa em lotes pai:
call verifnov %1 %2
Leia mais sobre arquivos em lotes
Formatando legenda | |
---|---|
Formato | Significado |
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 |