Caracteres de escape de linha de comando do Windows

Caracteres de escape de linha de comando do Windows

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 endfalhará 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 endimprime "\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

informação relacionada