Tengo un script de shell que quiero para ejecutar esta línea:¿Cómo incluir el carácter de tubería en un argumento a un archivo por lotes desde un script bash?
qtvars.bat vsstart "qt.sln" /BUILD "Debug|Win32"
Esto funciona bien (aunque tuve que modificar EDITAR: Esto tampoco funciona, si lo escribo en bash. Anteriormente, estaba tipeando en qtvars.bat
, pero que viene al caso). El problema es que quiero que el comando se ejecute para estar en una variable:cmd.exe
, lo cual no era una buena comparación.
command="qtvars.bat"
args="vsstart"
$command $args "qt.sln" /BUILD "Debug|Win32"
¡Ahora se ahoga en la tubería! Me sale este mensaje:
'Win32' is not recognized as an internal or external command,
operable program or batch file.
He intentado un montón de formas de escapar de las cotizaciones y/o tubería, todos en vano. Curiosamente, funciona cuando es un ejecutable en lugar de un archivo por lotes, por ejemplo .:
command="devenv.exe"
args=""
$command $args "qt.sln" /BUILD "Debug|Win32"
Gracias por cualquier idea.
Probé esos. Lo hice de nuevo ahora mismo para estar seguro. Producen el mismo error, aunque a veces "Win32" se convierte en "Win32 \" "'en el mensaje de error. – Owen
intente establecer el comando en "cmd.exe qtvars.bat" – vladr