【发布时间】: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-js 从pad-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。 cURL 和 aria2 也是如此。当我使用Mozilla 或IDM 下载它时,获取文件没有问题。所以我尝试了wget --auth-no-challenge或wget --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 上搜索并找到 powershell 的 this reference,(同样的错误),但无法批量重现工作答案,(我不熟悉 powershell 脚本)。
那么如何在批处理脚本中下载带有wget/curl 或aria2 的单个wirelesskey.zip 文件?
我发现的一种解决方法是直接从 the pad Panel 下载它,但我想要 .zip-file,包括更新的 .chm-file,以及 64 位版本(如果有)。
另外请注意,在我的防病毒工具中,nirsoft 网站免于扫描,所以这不是答案。
有什么解决办法吗?
【问题讨论】:
标签: windows batch-file curl wget aria2