我正在尝试使用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
中运行完全相同的命令(减去多余的百分号),它将运行完美。
要执行此特定命令,是否需要转义任何符号?
答案 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