No console CMD (modo interativo), executo o comando:
reg query HKCU\Console\%%Startup
A saída:
HKEY_CURRENT_USER\Console\%%Startup
DelegationConsole REG_SZ {B23D10C0-E52E-411E-9D5B-C09FDF709C7D}
DelegationTerminal REG_SZ {B23D10C0-E52E-411E-9D5B-C09FDF709C7D}
Quando salvo o comando em um arquivo bat:
@reg query "HKCU\Console\%%Startup"& pause
Eu recebo um erro:
ERROR: The system was unable to find the specified registry key or value.
Existe um formato de escrita diferente entre arquivos CMD e bat?
O que está errado?
Obrigado.
Ao trabalhar em um batchscript, o
%
sinal tem um significado. Eles podem ser usados com variáveis, por exemplo,%test%
mas também%1
etc.Quando você usa
for
normalmente (no cmd), você fazfor %i
... Masfor /?
também vou mencionar isso, você tem que usarfor %%i
em um script em lote. Você está basicamente escapando%
escrevendo%%
.Então, para responder sua pergunta, você precisaria escapar de ambos
%
%
escrevendo%%
%%
, como tal: