curl:將 GET 請求作為參數傳遞

curl:將 GET 請求作為參數傳遞

Heroku 有一個很好的命令,它允許我使用curl 下載一個在 UNIX 中運行良好的檔案:

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

反引號中的命令會產生一個非常長的 URL,很難將其複製/貼上到我的 Windows CMD 控制台中。

由於反引號在 Windows 中似乎不起作用,那麼 Windows 中的等效項是什麼?我對 CMD 的研究深入研究了創建批次文件,我認為這對於這個小目的來說有點過分了。谷歌搜尋curl的手冊頁沒有任何結果。谷歌搜尋其他資源似乎表明產生 POST 請求,但我認為這不是。

Windows CMD 中的等效指令是什麼?謝謝,薩姆

答案1

這不是原創研究,而是藉鏡自MSDN 博客那裡指出

沒有明顯的方法可以將命令的輸出讀入 (...) 變數。在 Unix 風格的 shell 中,這是透過反引用完成的。 (...)Windows 命令處理器沒有直接反引用,但您可以透過濫用 FOR 命令來偽造它。

這是一個這樣的例子為了命令,類似unix的echo `your_command`

for /f "delims=" %i in ('your_command') do @echo "%i"
  • /f啟動以下語法(請參閱 參考資料help for以取得更多資訊):

    FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
    
  • delim=禁用空白處的分割

  • @echo列印變數的內容%i,但 echo 呼叫本身被抑制 ( @)

答案2

正如 @Eugen Rieck 已經說過的,我建議您也使用合適的終端。但關於你的問題:

  • 反引號用於執行某些操作並內聯使用其結果,它們評價一個命令:

    echo `date`
    

    或者

    echo $(date)
    

    將列印:

    mar jul  1 11:46:42 CDT 2014
    

    因此,在您的情況下,它嘗試將heroku命令pgbackups:url作為參數執行。你可以參考這個問題:批次檔 - 如何將命令輸出設定為變數作為基督教對評論提出建議。

  • 要將參數傳遞給GET請求,您只需將所述參數附加到 URL,例如,如果您想傳遞一個number以 number命名的變數10text以 contains命名的變量"I'm a text",您的 URL 應如下所示:

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

相關內容