使用CURL从批处理文件下载

时间:2019-02-14 04:15:57

标签: batch-file curl

我正在尝试使用CURL从批处理文件中下载maya devkit:

call curl https://s3-us-west-2.amazonaws.com/autodesk-adn-transfer/ADN+Extranet/M%%26E/Maya/devkit+2018/Maya2018-DEVKIT_Windows.zip --output tmp.zip

但是,这给了我一个空的输出文件。奇怪的是,如果我在cmd中运行完全相同的命令(减去多余的百分号),它将运行完美。

要执行此特定命令,是否需要转义任何符号?

1 个答案:

答案 0 :(得分:0)

尝试一下:

curl -A "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64)" -L "https://s3-us-west-2.amazonaws.com/autodesk-adn-transfer/ADN+Extranet/M%26E/Maya/devkit+2018/Maya2018-DEVKIT_Windows.zip" -o tmp.zip

或通过以下方式放入.bat / .cmd批处理文件中:

curl -A "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64)" -L "https://s3-us-west-2.amazonaws.com/autodesk-adn-transfer/ADN+Extranet/M%%26E/Maya/devkit+2018/Maya2018-DEVKIT_Windows.zip" -o tmp.zip

建议通过-A开关添加一个Useragent,还需要用双引号将网址括起来。
有时候,您还需要-L-e RefererURL来下载文件。

通常call是不必要的,如果希望将其下载到单独的线程中,则可以使用start。当您需要调用子过程/函数并传递参数时,请使用call,并且由于它是批处理调用的另一层,因此您还需要再次将%翻倍,因为它被转义了两次。
也就是说,这将在批处理文件中起作用:

call curl -A "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64)" -L "https://s3-us-west-2.amazonaws.com/autodesk-adn-transfer/ADN+Extranet/M%%%%26E/Maya/devkit+2018/Maya2018-DEVKIT_Windows.zip" -o tmp.zip