En pocas palabras: recibimos un comando de un script y queremos ejecutarlo usando el shell de Windows.
Actualmente utilizamos un método similar a:
echo start & command & echo finish
Eso funciona bien a menos que el comando contenga símbolos de unión por sí solos, así por ejemplo
echo begin & if exist c:\temp.txt echo 1 & echo end
no podrá escribir "fin" si el archivo no existe.
Eso se puede solucionar cambiando el comando a echo begin & (if exist c:\temp.txt echo 1) & echo end
, pero luego nos encontramos con problemas con los comandos que contienen símbolos entre paréntesis, por ejemplo.
echo begin & (echo %PATH%) & echo end
imprime "\Hewlett-Packard\HP fue inesperado en este momento". porque tengo Archivos de programa (x86) en la ruta.
¿Alguna forma de escapar de los caracteres especiales del resultado del comando?
gracias de antemano
Respuesta1
El problema son los espacios en la RUTA, así que usa comillas.
echo begin & (echo "%PATH%") & echo end