Como faço para que os dados de ping não apareçam na tela quando codifico dessa maneira?
O problema está no seu comando set
:
set delay3=ping localhost -n 3 >nul
O >nul
(usado para descartar a saída) é aplicado ao comando set
e não é armazenado na variável.
Por outro lado:
set "delay3=ping localhost -n 3 >nul"
Faz o que você quer.
Arquivo em lote corrigido:
@echo off
set "delay3=ping localhost -n 3 >nul"
echo Message
%delay3%
cls
rem do other stuff
endlocal
Exemplo de saída:
> test
Message
>
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD
- Uma lista categorizada de comandos do Windows CMD
- redirecionamento - Operadores de redirecionamento.
- definir - Exibir, definir ou remover variáveis de ambiente do CMD. As alterações feitas com o SET permanecerão apenas pela duração da sessão atual do CMD.