curl: passa uma requisição GET como argumento

0

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

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

O comando nos backticks gera uma URL muito longa que é difícil de copiar / colar no console do Windows CMD.

Como os backticks parecem não funcionar no Windows, qual é o equivalente no Windows? Minha pesquisa sobre o CMD mergulhou profundamente na criação de um arquivo de lote que, na minha opinião, é um exagero para esse pequeno propósito. As páginas de manual do Google Curling não produziram nada que aparecesse. Procurar por outros recursos parece indicar a geração de uma solicitação POST, o que não acho que seja.

Qual é o comando equivalente no Windows CMD? thanx, sam

    
por sam452 01.07.2014 / 18:27

2 respostas

1

Esta não é uma pesquisa original, mas emprestada de Blogs do MSDN . Há afirmado que

There is no obvious way to read the output of a command into a (...) variable. In unix-style shells, this is done via backquoting. (...) The Windows command processor does not have direct backquoting, but you can fake it by abusing the FOR command.

E aqui está um exemplo com um comando para , parecido com o echo 'your_command' :

do unix
for /f "delims=" %i in ('your_command') do @echo "%i"
  • /f ativa a seguinte sintaxe (consulte help for para mais informações):

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

  • @echo imprime o conteúdo da variável %i , mas a própria chamada de eco é suprimida ( @ )
por 01.07.2014 / 22:05
0

Como o @Eugen Rieck já declarou, sugiro que você use um terminal adequado também. Mas quanto à sua pergunta:

  • Os backticks são usados para executar algo e usando seu resultado inline, eles avaliam um comando:

    echo 'date'
    

    Ou

    echo $(date)
    

    imprimirá:

    mar jul  1 11:46:42 CDT 2014
    

    Então, no seu caso, ele está tentando executar o comando heroku com pgbackups:url como um parâmetro. Você pode consultar essa pergunta: Arquivos em lote - Como definir a saída de comandos como uma variável como Christian sugere os comentários.

  • E para passar um parâmetro para uma solicitação GET você deve simplesmente acrescentar os parâmetros na URL, por instância, se você quer passar uma variável chamada number com o número 10 e uma variável chamada text que detém "I'm a text" , sua URL deve ficar assim:

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