Partilhar via


chamar

Chama um programa em lote de outro sem parar 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 lotes.

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 lotes que você deseja chamar. O <filename> parâmetro é obrigatório e deve ter uma extensão .bat ou .cmd.
<batchparameters> Especifica todas as informações de linha de comando exigidas pelo programa em lotes.
:<label> Especifica o rótulo para o qual você deseja que um controle de programa em lote salte.
<arguments> Especifica as informações de linha de comando a serem passadas para a nova instância do programa em lotes, começando em :<label>.
/? Exibe ajuda no prompt de comando.

Parâmetros do lote

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

Usar o %* valor em um script em 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 do 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 se expandirá para a cadeia de caracteres vazia.

A tabela a seguir 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 um 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 %1e, em seguida, 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 é terminada por um número de argumento válido. Os %~ modificadores não podem ser usados com %*.

Observações

  • Usando parâmetros de lote:

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

  • Usando o <label> parâmetro:

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

  • Usando tubos e símbolos de redirecionamento:

    Não use tubos ou símbolos de (|) redirecionamento (< ou >) com chamada.

  • Fazer uma chamada recursiva

    Você pode criar um programa em lote que se autodenomina. No entanto, você deve fornecer uma condição de saída. Caso contrário, os programas em lote pai e filho podem fazer loop infinitamente.

  • Trabalhando com extensões de comando

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

Exemplos

Para executar o programa checknew.bat a partir de outro programa em lotes, digite o seguinte comando no programa em 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