tl; dr - Problema que você tem aí é que echo %Q%
se expande para echo
. Use echo.%Q%
Resposta expandida
O comando echo
tem 4 comportamentos:
-
echo on
- ativa comandos de eco. -
echo off
- desativa os comandos de eco. -
echo
- mostra o estado da opção de comandos de eco. -
echo ...
- coloca...
e nova linha na tela.
Se você passar a variável para echo como argumento e ela estiver vazia, ela será expandida para echo
e mostrará algo como "ECHO está desativado".
Muitas pessoas usam o comando echo.
para exibir uma string vazia (read: output newline), mas nem todo mundo sabe que echo.
pode ser usado para especificar explicitamente que você deseja um comportamento de saída. por exemplo:
-
echo.on
- produziráon
e nova linha -
echo.off
- produziráoff
e nova linha -
echo.
- produzirá nova linha -
echo.something
- produzirásomething
e nova linha -
echo.%Q%
- produzirá conteúdo de%Q%
, estando ou não "" / "on" / "off" ou qualquer outra coisa.
Lembre-se de que não deve haver espaço entre .
e argumentos.
Veja o link