O problema são os espaços no PATH, então use aspas.
echo begin & (echo "%PATH%") & echo end
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 depois encontramos 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 no momento." porque eu tenho Program Files (x86) no caminho.
Alguma maneira de escapar de caracteres especiais do resultado do comando?
Obrigado antecipadamente
O problema são os espaços no PATH, então use aspas.
echo begin & (echo "%PATH%") & echo end
Tags command-line windows shell