curl: passa uma solicitação GET como argumento

curl: passa uma solicitação GET como argumento

Heroku tem este comando legal que me permite usar curl para baixar um arquivo que funciona bem no UNIX:

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

O comando em backticks gera um URL muito longo que é difícil de copiar/colar no console CMD do Windows.

Como os backticks parecem não funcionar no Windows, qual é o equivalente no Windows? Minha pesquisa sobre CMD se aprofundou na criação de um arquivo em lote que considero um exagero para esse pequeno propósito. As páginas de manual do curl no Google não renderam nada que aparecesse. Pesquisar outros recursos no Google parece indicar a geração de uma solicitação POST, o que não acho que seja.

Qual é o comando equivalente no Windows CMD? obrigado, Sam

Responder1

Esta não é uma pesquisa original, mas emprestada deBlogs do MSDN.Lá está afirmado que

Não existe uma maneira óbvia de ler a saída de um comando em uma variável (...). Em shells de estilo unix, isso é feito por meio de crases. (...)O processador de comandos do Windows não possui crase direta, mas você pode fingir abusando do comando FOR.

E aqui está um exemplo com talparacomando, semelhante ao do unix echo `your_command`:

for /f "delims=" %i in ('your_command') do @echo "%i"
  • /fativa a seguinte sintaxe (veja help forpara mais informações):

    FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
    
  • delim=desativa a divisão em espaços em branco

  • @echoimprime o conteúdo da variável %i, mas a própria chamada de eco é suprimida ( @)

Responder2

Como @Eugen Rieck já afirmou, sugiro que você use um terminal adequado também. Mas em relação à sua pergunta:

  • Ocrasessão usados ​​para executar algo e usando seu resultado embutido, elesAvalieum comando:

    echo `date`
    

    Ou

    echo $(date)
    

    Irá imprimir:

    mar jul  1 11:46:42 CDT 2014
    

    Então, no seu caso, ele está tentando executar herokuo comando pgbackups:urlcomo parâmetro. Você pode consultar esta pergunta:Arquivos em lote - Como definir a saída de comandos como uma variávelcomocristãosugere nos comentários.

  • E para passar um parâmetro para uma GETsolicitação você deve simplesmente anexar esses parâmetros à URL, por exemplo, se você quiser passar uma variável nomeada numbercom o número 10e uma variável chamada textque contém "I'm a text", sua URL deve ficar assim:

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

informação relacionada