Heroku 有一个很好的命令,它允许我使用 curl 下载在 UNIX 中运行良好的文件:
curl -o latest.dump `heroku pgbackups:url`
反引号中的命令会产生一个非常长的 URL,很难复制/粘贴到我的 Windows CMD 控制台中。
由于反引号在 Windows 中似乎不起作用,那么 Windows 中的等效功能是什么?我对 CMD 进行了深入研究,创建了一个批处理文件,我认为对于这个小目的来说,这有点小题大做。谷歌搜索 curl 的手册页没有找到任何结果。谷歌搜索其他资源似乎表明生成了一个 POST 请求,但我认为这不是。
Windows CMD 中的等效命令是什么?谢谢,sam
答案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
数字命名的变量10
和一个名为的变量text
,"I'm a text"
您的 URL 应该是这样的:"http://example.com/script.php?number=10&text=I'm+a+text"