卷曲不保存具有原始名称的文件

时间:2014-03-10 13:20:35

标签: windows curl cmd

我正在使用CURL下载文件。文件URL是动态的。由于我想保存具有相同名称的文件,我使用curl -O下载到文件夹

文件已下载,但文件随扩展名一起保存 即“csv”

我正在尝试下载CSV文件。

我在标题

中看到了这一点

HTTP/1.1 200 OK X-Powered-By: Servlet/3.0 Last-Modified: Wed, 23 May 2012 07:23:15 GMT Cache-Control: public, proxy-revalidate, s-maxage=3 Content-Type: text/csv;charset=UTF-16LE Content-Disposition: attachment; filename*=utf-8''all_open.csv Content-Language: en-US Transfer-Encoding: chunked Date: Mon, 10 Mar 2014 13:10:41 GMT

不幸的是,downaloded文件的名称为csv,而不是all_open.csv

知道我可能做错了吗?

我使用的curl命令是

C:/curl-7.35.0/bin/curl -D - -k -b 'C:/workdir/cookies/auth_cookie.txt' -H 'Content-Type: application/csv' -H 'Accept: text/csv' -O -J -X GET 'https://server/_9jHFQDtoEeGi16hvdCIrXQ?_mediaType=text/csv'

1 个答案:

答案 0 :(得分:1)

无论curl问题的原因是什么,您都可以单独从标题中提取文件名。为此,请将这样的内容放在批处理文件中(例如download.cmd):

set CURL=C:\curl-7.35.0\bin\curl
set URL=https://server/_9jHFQDtoEeGi16hvdCIrXQ?_mediaType=text/csv
set OPTIONS=-k -b "C:\workdir\cookies\auth_cookie.txt" -H "Content-Type: application/csv" -H "Accept: text/csv"
%CURL% %OPTIONS% -X GET "%URL%" --head | findstr filename > filename.tmp
for /f "delims==, tokens=2" %%i in (filename.tmp) do %CURL% %OPTIONS% -X GET "%URL%" -o %%i
del /q filename.tmp