Windows wget不下载文件但在浏览器中下载

标签 windows batch-file command wget

我正在尝试使用 wget(Windows 命令行端口)下载文件,但出现此错误..

--2016-12-06 12:36:11--  https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv064BIT/SQLEXPRADV_x64_ENU.exe
Resolving download.microsoft.com (download.microsoft.com)... 23.209.210.127
Connecting to download.microsoft.com (download.microsoft.com)|23.209.210.127|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2016-12-06 12:36:12 ERROR 404: Not Found.

使用相同的命令可以正常下载其他文件...

这是我试过的

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate "https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%2064BIT/SQLEXPRADV_x64_ENU.exe" -P C:\Temp

..和..

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%2064BIT/SQLEXPRADV_x64_ENU.exe -P C:\Temp

我希望这是处理链接中 % 的报价问题,但没有成功。我也试过单引号,并在 % 前面放一个\来转义字符。

总是同样的错误。我想知道这个站点上的 wget 请求是否有一些服务器端限制。我可以绕过它吗?也许我需要一些其他开关?提前致谢。

最佳答案

当简单地从 cmd 运行时,您的命令可以工作,但是由于您是从批处理文件中运行它,您需要通过将百分号加倍来​​转义百分号,即:%%%

这给出了:

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate "https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%%2064BIT/SQLEXPRADV_x64_ENU.exe" -P C:\Temp

引用ss64.com :

Many characters such as \ = ( ) do not need to be escaped when they are used within a "quoted string" typically these are charcters you might find in a filename/path. The percent character is one exception to this rule, even though under NTFS % is a valid filename character.

关于Windows wget不下载文件但在浏览器中下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995833/

相关文章:

c# - 命令绑定(bind)不起作用 - MVVM Light RelayCommand 和 XAML 问题

c# - 在窗口打开时获得通知的最有效方式

windows - 远程放置 Windows 10 电脑以从树莓派休眠

c# - EventLog 记录在应用程序中,即使设置为另一个日志

C++ 内存映射文件实现

batch-file - Windows外壳: get parameter value from file

windows - 在 Windows 命令行中使用批处理文件中的参数

windows - 用于检查系统中是否存在 Java 主目录并检查 Java 版本的批处理脚本

linux - 如何检查shell脚本是否在服务器中运行

c# - 是否可以从Button调用Command?