curl: pasa una solicitud GET como argumento

curl: pasa una solicitud GET como argumento

Heroku tiene este bonito comando que me permite usar curl para descargar un archivo que funciona bien en UNIX:

curl -o latest.dump `heroku pgbackups:url`

El comando entre comillas invertidas produce una URL muy larga que es difícil de copiar/pegar en mi consola CMD de Windows.

Dado que las comillas invertidas no parecen funcionar en Windows, ¿cuál es el equivalente en Windows? Mi investigación sobre CMD profundizó en la creación de un archivo por lotes, lo cual creo que es excesivo para este pequeño propósito. Al buscar en Google las páginas de manual de curl no apareció nada. Buscar en Google otros recursos parece indicar que se está generando una solicitud POST, lo cual no creo que sea así.

¿Cuál es el comando equivalente en Windows CMD? gracias, sam

Respuesta1

Esta no es una investigación original, sino un préstamo deBlogs de MSDN.Allí se afirma que

No existe una forma obvia de leer la salida de un comando en una variable (...). En shells de estilo Unix, esto se hace mediante comillas invertidas. (...)El procesador de comandos de Windows no tiene comillas inversas directas, pero puedes fingirlo abusando del comando FOR.

Y aquí hay un ejemplo con talparacomando, parecido al de Unix echo `your_command`:

for /f "delims=" %i in ('your_command') do @echo "%i"
  • /factiva la siguiente sintaxis (ver help forpara más información):

    FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
    
  • delim=desactiva la división en espacios en blanco

  • @echoimprime el contenido de la variable %i, pero la llamada de eco en sí se suprime ( @)

Respuesta2

Como ya dijo @Eugen Rieck, le sugiero que también utilice un terminal adecuado. Pero con respecto a tu pregunta:

  • Elcomillas invertidasse utilizan para ejecutar algo y usando su resultado en línea,evaluarun comando:

    echo `date`
    

    O

    echo $(date)
    

    Imprimirá:

    mar jul  1 11:46:42 CDT 2014
    

    Entonces, en su caso, está intentando ejecutar herokuel comando pgbackups:urlcomo parámetro. Puedes consultar esta pregunta:Archivos por lotes: cómo configurar la salida de comandos como una variablecomocristianosugiere en los comentarios.

  • Y para pasar un parámetro a una GETsolicitud, simplemente debe agregar dichos parámetros a la URL; por ejemplo, si desea pasar una variable cuyo nombre numbersea el número 10y una variable textcuyo nombre contenga "I'm a text", su URL debería verse así:

    "http://example.com/script.php?number=10&text=I'm+a+text"
    

información relacionada