获取在dropbox上上传的文件的大小

时间:2015-02-23 15:31:38

标签: windows batch-file

我希望获得上传到 dropbox 的文件大小。 我试过这个:

@ECHO OFF
color A
for %%A in (https://www.dropbox.com/s/e9q3ssvhitsatbq/Update.zip) do set Size=%%~zA
echo %Size%
pause

但它不起作用。 输出必须以字节为单位。 所以我希望批处理文件输出(例如)1024 B. 有没有办法获得上传到 dropbox 的文件大小? 任何人

2 个答案:

答案 0 :(得分:1)

在Windows批处理中不可能。使用wget的win32版本...

wget -S --spider --no-check-certificate https://www.dropbox.com/s/e9q3ssvhitsatbq/Update.zip

...或curl ...

curl -I https://www.dropbox.com/s/e9q3ssvhitsatbq/Update.zip

...并解析输出。请注意,这两个命令都执行HEAD请求,即他们在服务器上查找文件而不实际下载它。

在powershell中可能有一种方法可以做到这一点,但这是我所不知道的。

更新1:如何将大小保存到变量?

@ECHO OFF
SET URL=https://www.dropbox.com/s/e9q3ssvhitsatbq/Update.zip
FOR /F "usebackq tokens=*" %%A IN (`wget -S --spider --no-check-certificate %URL% 2^>^&1 ^| FINDSTR "Content-Length: "`) DO (
    SET SIZE=%%A
)
ECHO %SIZE:~16%

输出:

142515188

更新2:有没有办法让它更快?

我不这么认为。我的结束需要大约10秒钟。如果我在浏览器中打开URL,那么在我到达实际下载页面之前大约需要10秒钟。 Dropbox似乎有点慢。

在旁注中,打开URL会导致302重定向,因此实际发送两个请求,这解释了10秒内的一半。

答案 1 :(得分:0)

您必须将DROPBOX API与POST / GET方法一起使用。 您可以使用VBS来执行此操作。