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命名的變數10
和text
以 contains命名的變量"I'm a text"
,您的 URL 應如下所示:"http://example.com/script.php?number=10&text=I'm+a+text"