Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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