caracteres de escape da linha de comandos do Windows

1

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

    
por Vic 21.08.2012 / 12:48

1 resposta

1

O problema são os espaços no PATH, então use aspas.

  echo begin & (echo "%PATH%") & echo end
    
por 21.08.2012 / 12:53