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 em lotes de outro.
CALL [unidade:][caminho]arquivo [parâmetros]
parâmetros Especifica qualquer informação de linha de comando
necessária ao programa em lotes.
Se as extensões de comando estiverem ativadas, CALL será alterado como
a seguir:
O comando CALL agora aceita rótulos como destino. A sintaxe é:
CALL :rótulo argumentos
Um novo contexto de arquivo em lotes é criado com os argumentos especificados
e o controle é transferido para a instrução após o rótulo especificado. Você
deve "sair" duas vezes ao alcançar o final do arquivo de script em lotes duas
vezes. Na primeira vez em que você ler o final, o controle retornará para
logo
após a instrução CALL. Na segunda vez, sairá do script em lotes. Digite
GOTO /? para obter uma descrição da extensão GOTO :EOF que lhe permitirá
"retornar" de um script em lotes.
Além disso, a expansão de referências de argumento de script em lotes (%0,
%1, etc.) foram alteradas como a seguir:
%* em um script em lotes refere-se a todos os argumentos (ex.: %1 %2
%3 %4 %5 ...)
A substituição de parâmetros em lotes (%n) foi aprimorada. Agora é
possível usar a seguinte sintaxe opcional:
%~1 - expande %1 removendo quaisquer aspas (")
%~f1 - expande %1 para um nome de caminho totalmente
qualificado
%~d1 - expande %1 para somente uma letra de unidade
%~p1 - expande %1 para somente um caminho
%~n1 - expande %1 para somente um nome de arquivo
%~x1 - expande %1 para somente uma extensão de arquivo
%~s1 - o caminho expandido contém somente nomes curtos
%~a1 - expande %1 para atributos de arquivo
%~t1 - expande %1 para data/hora do arquivo
%~z1 - expande %1 para o tamanho do arquivo
%~$PATH:1 - pesquisa as pastas listadas na variável
de ambiente PATH e expande %1 para o nome
totalmente qualificado da primeira encontrada. Se o
nome da variável de ambiente não estiver definido ou o
arquivo não for encontrado pela pesquisa, esse
modificador será expandido para a cadeia de
caracteres vazia
Os modificadores podem ser combinados para obter resultados compostos:
%~dp1 - expande %1 somente para uma letra da unidade e caminho
%~nx1 - expande %1 somente para uma extensão e nome de arquivo
%~dp$PATH:1 - pesquisa as pastas listadas na variável de ambiente
PATH para %1 e expande para a
letra da unidade e caminho da primeira encontrada.
%~ftza1 - expande %1 para uma linha de saída do tipo DIR
Nos exemplos acima %1 e PATH podem ser substituídos por outros
valores válidos. A sintaxe %~ é finalizada por um número de argumento
válido. Os modificadores %~ não podem ser usados 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.