我希望获得上传到 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 的文件大小? 任何人
答案 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来执行此操作。