Heroku hat diesen netten Befehl, der es mir ermöglicht, mit curl eine Datei herunterzuladen, was unter UNIX gut funktioniert:
curl -o latest.dump `heroku pgbackups:url`
Der Befehl in Backticks ergibt eine sehr lange URL, die sich nur schwer in meine Windows CMD-Konsole kopieren/einfügen lässt.
Da Backticks in Windows nicht zu funktionieren scheinen, was ist das Äquivalent in Windows? Bei meiner Recherche zu CMD ging es tief in die Erstellung einer Batchdatei, was meiner Meinung nach für diesen kleinen Zweck übertrieben ist. Das Googeln der Manpages von curl hat nichts ergeben. Das Googeln nach anderen Ressourcen scheint auf die Generierung einer POST-Anforderung hinzudeuten, was hier meiner Meinung nach nicht der Fall ist.
Was ist der entsprechende Befehl in der Windows-CMD? Danke, Sam
Antwort1
Dies ist keine eigene Forschung, sondern entlehnt ausMSDN Blogs.Dort heißt es:
Es gibt keine offensichtliche Möglichkeit, die Ausgabe eines Befehls in eine (...)-Variable einzulesen. In Shells im Unix-Stil geschieht dies durch Backquoting. (...)Der Windows-Befehlsprozessor verfügt nicht über direktes Backquoting, aber Sie können es vortäuschen, indem Sie den FOR-Befehl missbrauchen.
Und hier ist ein Beispiel mit einem solchenfürBefehl, der dem von Unix ähnelt echo `your_command`
:
for /f "delims=" %i in ('your_command') do @echo "%i"
/f
aktiviert die folgende Syntax (help for
weitere Informationen finden Sie unter):FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
delim=
deaktiviert die Trennung an Leerzeichen@echo
druckt den Inhalt der Variable%i
, aber der Echo-Aufruf selbst wird unterdrückt (@
)
Antwort2
Wie @Eugen Rieck bereits sagte, schlage ich vor, dass Sie auch ein richtiges Terminal verwenden. Aber zu Ihrer Frage:
DerBacktickswerden verwendet, um etwas auszuführen und das Ergebnis inline zu verwenden.auswertenEin Kommando:
echo `date`
Oder
echo $(date)
Es wird gedruckt:
mar jul 1 11:46:42 CDT 2014
In Ihrem Fall versucht es also,
heroku
den Befehl mitpgbackups:url
als Parameter auszuführen. Sie können sich auf diese Frage beziehen:Batchdateien - So legen Sie die Befehlsausgabe als Variable festalsChristianschlägt in den Kommentaren vor.Und um einen Parameter an eine
GET
Anfrage zu übergeben, sollten Sie einfach die besagten Parameter an die URL anhängen. Wenn Sie beispielsweise eine Variable mitnumber
dem Namen „Nummer“10
und eine Variable mit dem Namen „text
, die enthält“ übergeben möchten"I'm a text"
, sollte Ihre URL folgendermaßen aussehen:"http://example.com/script.php?number=10&text=I'm+a+text"