chamada

Chama um programa em lote de outro sem interromper o programa em lote pai. O comando call aceita rótulos como o destino da chamada.

Observação

A chamada não tem efeito no prompt de comando quando é usada fora de um script ou arquivo em lote.

Sintaxe

call [drive:][path]<filename> [<batchparameters>]] 
call [:<label> [<arguments>]]

Parâmetros

Parâmetro Descrição
[<drive>:][<path>]<filename> Especifica o local e o nome do programa em lote que você deseja chamar. O parâmetro <filename> é necessário e precisa ter uma extensão .bat ou .cmd.
<batchparameters> Especifica as informações de linha de comando exigidas pelo programa em lote.
:<label> Especifica o rótulo para o qual você deseja que um controle de programa em lote vá.
<arguments> Especifica as informações de linha de comando a serem passadas para a nova instância do programa em lote, começando em :<label>.
/? Exibe a ajuda no prompt de comando.

Parâmetros de lote

As referências de argumento do script de lote (%0, %1,...) estão listadas nas tabelas a seguir.

O uso do valor %* em um script de lote refere-se a todos os argumentos (por exemplo, %1, %2, %3...).

Você pode usar as seguintes sintaxes opcionais como substituições para parâmetros de lote (%n):

Parâmetro de lote Descrição
%~1 Expande %1 e remove as aspas ao redor.
%~f1 Expande %1 para um caminho totalmente qualificado.
%~d1 Expande %1 apenas para uma letra de unidade.
%~p1 Expande %1 apenas para um caminho.
%~n1 Expande %1 apenas para um nome de arquivo.
%~x1 Expande %1 apenas para uma extensão de nome de arquivo.
%~s1 Expande %1 para um caminho totalmente qualificado que contém apenas nomes curtos.
%~a1 Expande %1 para os atributos de arquivo.
%~t1 Expande %1 para a data e hora do arquivo.
%~z1 Expande %1 para o tamanho do arquivo.
%~$PATH:1 Pesquisa os diretórios listados na variável de ambiente PATH e expande %1 para o nome totalmente qualificado do primeiro diretório encontrado. Se o nome da variável de ambiente não estiver definido ou o arquivo não for encontrado pela pesquisa, esse modificador expandirá para a cadeia de caracteres vazia.

A seguinte tabela mostra como você pode combinar modificadores com os parâmetros de lote para resultados compostos:

Parâmetro de lote com modificador Descrição
%~dp1 Expande %1 apenas para uma letra de unidade e caminho.
%~nx1 Expande %1 apenas para um nome de arquivo e extensão.
%~dp$PATH:1 Pesquisa os diretórios listados na variável de ambiente PATH para %1 e expande para a letra da unidade e o caminho do primeiro diretório encontrado.
%~ftza1 Expande %1 para exibir uma saída semelhante ao comando dir.

Nos exemplos acima, %1 e PATH podem ser substituídos por outros valores válidos. A sintaxe %~ é encerrada por um número de argumento válido. Os modificadores %~ não podem ser usados com %*.

Comentários

  • Usando parâmetros de lote:

    Parâmetros de lote podem conter qualquer informação que você possa passar para um programa de lote, incluindo opções de linha de comando, nomes de arquivo, os parâmetros de lote %0 a %9 e variáveis (por exemplo, %baud%).

  • Usando o parâmetro <label>:

    Usando call com o parâmetro <label>, você cria um contexto de arquivo de lote e passa o controle para a instrução após o rótulo especificado. Na primeira vez que o final do arquivo de lote é encontrado (ou seja, depois de saltar para o rótulo), o controle retorna para a instrução após a instrução call. Na segunda vez que o final do arquivo de lote é encontrado, o script de lote é encerrado.

  • Usando barras verticais e símbolos de redirecionamento:

    Não use barras verticais (|) nem símbolos de redirecionamento (< ou >) com call.

  • Fazendo uma chamada recursiva

    Você pode criar um programa em lote que chama a si mesmo. No entanto, você precisa fornecer uma condição de saída. Caso contrário, os programas de lote pai e filho poderão fazer um loop infinito.

  • Trabalhando com extensões de comando

    Se as extensões de comando estiverem habilitadas, call aceitará <label> como destino da chamada. A sintaxe correta é call :<label> <arguments>.

Exemplos

Para executar o programa checknew.bat de outro programa de lote, digite o seguinte comando no programa de lote pai:

call checknew

Se o programa de lote pai aceitar dois parâmetros de lote e você quiser que ele passe esses parâmetros para checknew.bat, digite o seguinte comando no programa de lote pai:

call checknew %1 %2