O comando: "CALL" está ativado Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponível
Os exemplos para o comando "CALL"
O
`CALL`O comando no prompt de comando do Windows é usado para iniciar a execução de outro script em lote dentro de um script em lote. Aqui estão alguns exemplos com comentários:
Exemplo 1: Chamada simples para outro script em lote:
CALL outro_roteiro.bat
Descrição: Este comando chama o script em lote
`outro_roteiro.bat`sobre. O
`CALL`O comando é usado para garantir que o controle retorne ao script original após a conclusão do script chamado.
Exemplo 2: Passando parâmetros para o script chamado:
CALL outro_roteiro.bat Parameter1 Parameter2
Descrição: Os parâmetros estão aqui
`Parameter1`e
`Parameter2`passado para o script em lote chamado. Dentro de
`outro_roteiro.bat`pode usar esses parâmetros
`%1`,
`%2`, etc. podem ser recuperados.
Exemplo 3: Uso de`%*`para todos os parâmetros passados:
CALL outro_roteiro.bat %*
Descrição:*`%`representa todos os parâmetros passados. Este comando chama
`outro_roteiro.bat`e passa todos os parâmetros que foram passados para o script original.
Exemplo 4: Verifique o valor de retorno do script chamado:
CALL outro_roteiro.bat
IF ERRORLEVEL 1 (
ECHO O script chamado retornou um erro.
) ELSE (
ECHO O script chamado foi executado com sucesso.
)
Descrição: O script em lote chamado está aqui
`outro_roteiro.bat`executado. Então com
`ERRORLEVEL`verifica se o script retornou um erro.
Exemplo 5: Uso de`GOTO`depois da ligação:
CALL outro_roteiro.bat
GOTO Continuar
:Continuar
ECHO O script foi chamado com sucesso.
Descrição: Aqui está o script em lote
`outro_roteiro.bat`chamado, e após a chamada, a execução se torna o rótulo de salto
`Continuar`encaminhado.
O
`CALL`O comando é particularmente útil quando você deseja chamar outro script de um script em lote e garantir que a execução retorne ao script original. Isto é importante para continuar o script original após chamar o outro script.
"CALL" Trecho da Ajuda do Microsoft Windows
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Chama um programa batch a partir de outro.
CALL [unidade:][caminho]nomedeficheiro [parâmetros-batch]
parâmetros-batch Especifica qualquer informação da linha de comandos
necessária para o programa batch.
Se as extensões de comandos forem activadas, CALL é alterado da seguinte
forma:
O comando CALL aceita etiquetas como destino do CALL. A sintaxe é:
CALL :etiqueta argumentos
É criado um novo contexto de ficheiro batch com os argumentos especificados
e o controlo é passado para a instrução a seguir à etiqueta especificada.
Tem de "sair" duas vezes alcançando o fim do ficheiro de script de comandos
duas vezes. Na primeira vez em que lê o fim, o controlo voltará ao local a
seguir à instrução CALL. Na segunda vez sairá do script de comandos.
Escreva GOTO /? para obter uma descrição da extensão :EOF do GOTO que
permitirá "regressar" de um script de comandos.
Além disso, as expansões das referências de argumentos de scripts de comandos
(%0, %1, etc.) foram alteradas da seguinte forma:
%* num script de comandos refere-se a todos os argumentos (por exemplo:
%1 %2 %3 %4 %5 ...)
A substituição dos parâmetros de comandos (%n) foi melhorada. Agora pode
utilizar a seguinte sintaxe opcional:
%~1 - expande %1 removendo as aspas (") à sua volta
%~f1 - expande %1 para um nome de caminho válido
%~d1 - expande %1 apenas para uma letra de unidade
%~p1 - expande %1 apenas para um caminho
%~n1 - expande %1 apenas para um nome de ficheiro
%~x1 - expande %1 apenas para uma extensão de ficheiro
%~s1 - o caminho expandido só contém nomes curtos
%~a1 - expande %1 para atributos de ficheiro
%~t1 - expande %1 para a data/hora de ficheiro
%~z1 - expande %1 para o tamanho de ficheiro
%~$PATH:1 - procura nos directórios listados na variável de
ambiente PATH e expande %1 para o nome válido do
primeiro que for encontrado. Se o nome da variável
de ambiente não estiver definido ou o ficheiro não
for encontrado através da procura, então este
modificador expande para a cadeia vazia
Os modificadores podem ser combinados para obter resultados compostos:
%~dp1 - expande %1 apenas para uma letra de unidade e caminho
%~nx1 - expande %1 apenas para um nome de ficheiro e extensão
%~dp$PATH:1 - procura nos directórios listados na variável
de ambiente PATH para %1 e expande para a letra
de unidade e caminho do primeiro que for encontrado.
%~ftza1 - expande %1 para uma linha de saída parecida com o DIR
Nos exemplos anteriores o %1 e o 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 utilizados com %*
Informações importantes, dicas para o comando "CALL"
Sim, existem alguns pontos e considerações importantes que você deve ter em mente ao fazer o
`CALL`comando no prompt de comando do Windows:
1.
Use com scripts em lote: O
`CALL`O comando normalmente é usado para chamar outro script em lote dentro de um script em lote. Observe que pode não ser necessário ao executar outros tipos de arquivo.
2.
Verifique o valor de retorno: Se o script em lote chamado retornar um valor de retorno, você poderá fazer isso com
`ERRORLEVEL`verificar. Observe que
`ERRORLEVEL`reflete apenas o valor de retorno do último comando executado.
CALL outro_roteiro.bat
IF ERRORLEVEL 1 (
ECHO O script chamado retornou um erro.
) ELSE (
ECHO O script chamado foi executado com sucesso.
)
3.
Uso correto de parâmetros: Preste atenção ao uso correto de parâmetros ao passar parâmetros para o script em lote chamado. Os parâmetros podem ser usados no script chamado
`%1`,
`%2`, etc. podem ser recuperados.
CALL outro_roteiro.bat Parameter1 Parameter2
4.
Sintaxe e espaços: Certifique-se de que a sintaxe esteja correta e de que não haja espaços desnecessários. Isso pode levar a erros.
5.
Considerações de segurança: Ao usar
`CALL`Em scripts que contêm parâmetros, é importante garantir que os parâmetros passados sejam devidamente validados e processados para minimizar riscos de segurança.
6.
Monitoramento e registro em log: Ao desenvolver scripts em lote que chamam outros scripts, geralmente é aconselhável usar métodos de monitoramento e registro em log para monitorar a execução e possíveis erros.
7.
Evite Loops Infinitos: Tenha cuidado para não criar loops infinitos acidentalmente chamando scripts em lote em um loop. Isso pode resultar em scripts se autodenominando repetidamente.
8.
Diferenças específicas da versão: Observe que a funcionalidade do
`CALL`O comando pode variar dependendo da versão do Windows. É aconselhável consultar a documentação da sua versão específica do Windows.
Leve essas considerações em consideração para garantir o uso de
`CALL`corretamente e com segurança em seus scripts em lote.