【问题标题】:Windows Batch: wget to download Nirsoft tools - leads to corrupt filesWindows Batch:wget 下载 Nirsoft 工具 - 导致文件损坏
【发布时间】:2021-09-13 19:13:46
【问题描述】:

当我创建一个批处理文件来更新NirSoft 工具时,我对使用wget 有一种奇怪的体验。

首先我下载了​​一个带有填充链接的文本文件:

wget http://www.nirsoft.net/pad/pad-links.txt --backups=20 --append-output=C:\Path\Update\LOG\Nirsoft\%Timestamp%_NirSoft.log

之后,我使用fart-jspad-links.txt 文件中删除了我不需要的行。我还使用该程序将下载链接更改为https://www.nirsoft.net/utils,并将文件扩展名更改为.zip

fart ".\pad-links.txt" "http://www.nirsoft.net/pad" "http://www.nirsoft.net/utils" | tee --append C:\Path\Update\LOG\Nirsoft\%Timestamp%_NirSoft.log

fart ".\pad-links.txt" ".xml" ".zip" | tee --append C:\Path\Update\LOG\Nirsoft\%Timestamp%_NirSoft.log

之后,为了下载程序,我使用了:

wget --timestamping --input-file=C:\Path\UtilSuit\NirLauncher\Download\pad-links.txt --append-output=C:\Path\Update\LOG\Nirsoft\%Timestamp%_NirSoft.log

查看日志文件后,我发现并非所有程序都存储在此位置。例如WirelessKeyView存储在https://www.nirsoft.net/toolsdownload/wirelesskeyview.zip中。

尝试使用wget 获取此文件会导致下载的损坏文件大小为 4kb。 cURLaria2 也是如此。当我使用MozillaIDM 下载它时,获取文件没有问题。所以我尝试了wget --auth-no-challengewget --header="Accept: text/html" --user-agent="Mozilla/5.0 …"

我还尝试了 cliget,它在使用 Mozilla 正常下载时产生的 wget/aria2/curl 行。

wget --header 'Host: www.nirsoft.net' --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' --header 'Accept-Language: de,en-US;q=0.7,en;q=0.3' --referer 'https://www.nirsoft.net/utils/wirelesskeyview.html' --header 'Upgrade-Insecure-Requests: 1' --header 'Sec-Fetch-Dest: document' --header 'Sec-Fetch-Mode: navigate' --header 'Sec-Fetch-Site: same-origin' --header 'Sec-Fetch-User: ?1' --header 'DNT: 1' --header 'Sec-GPC: 1' 'https://www.nirsoft.net/toolsdownload/wirelesskeyview.zip' --output-document 'wirelesskeyview.zip'

我在 google 上搜索并找到 powershellthis reference,(同样的错误),但无法批量重现工作答案,(我不熟悉 powershell 脚本)。

那么如何在批处理脚本中下载带有wget/curlaria2 的单个wirelesskey.zip 文件?

我发现的一种解决方法是直接从 the pad Panel 下载它,但我想要 .zip-file,包括更新的 .chm-file,以及 64 位版本(如果有)。

另外请注意,在我的防病毒工具中,nirsoft 网站免于扫描,所以这不是答案。

有什么解决办法吗?

【问题讨论】:

    标签: windows batch-file curl wget aria2


    【解决方案1】:

    啊,这个很简单。如果您查看下载的实际页面,它被称为“403.html”。所以,让我们打开它。首先让你印象深刻的是:

    <title>Error 403: Missing HTTP referer in the HTTP request</title>
    

    所以,服务器需要一个 Referer 标头。当然,让我们给它一个:

    $ wget --referer foo <URL>
    

    它会按预期正确下载 zip 文件。

    现在,实际上,服务器不应该返回带有名为 403 的文件的 HTTP 200 响应。它确实应该发回 HTTP 403 响应。但你能做什么呢?到处都是坏掉的服务器

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2021-02-15
    • 2012-04-09
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多