Resumindo: recebemos um comando de um script e queremos executá-lo usando o shell do Windows.
Atualmente usamos um método semelhante a:
echo start & command & echo finish
Isso funciona bem, a menos que o comando contenha e comercial por conta própria, por exemplo
echo begin & if exist c:\temp.txt echo 1 & echo end
falhará ao escrever "end" se o arquivo não existir.
Isso pode ser resolvido alterando o comando para echo begin & (if exist c:\temp.txt echo 1) & echo end
, mas então nos deparamos com problemas para comandos que contêm símbolos de parênteses, por exemplo
echo begin & (echo %PATH%) & echo end
imprime "\Hewlett-Packard\HP foi inesperado neste momento." porque tenho Arquivos de Programas (x86) no caminho.
Alguma maneira de escapar dos caracteres especiais do resultado do comando?
desde já, obrigado
Responder1
O problema são os espaços no PATH, então use aspas.
echo begin & (echo "%PATH%") & echo end