我正在尝试使用 wget 从网站下载文件,我尝试了在网上找到的这个命令:
wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off https://website.name/mydownloads.php
我在我的一个文件夹中启动powershell并在那里使用了命令,但它返回:
Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the "-t1" value of type "System.String" to type "Sy
stem.Collections.IDictionary".
At line:1 char:13
+ wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off https://website.na ...
+ ~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
这是因为我没有正确安装 wget ,还是我做错了什么?
答案 0 :(得分:0)
您提供的命令是wget.exe命令,而不是PowerShell'wget'命令。
PowerShell为Invoke-WebRequest定义一个别名wget,所以如果你的系统上有wget.exe,你仍然需要输入路径或至少.exe扩展名来绕过别名:
wget.exe -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off https://website.name/mydownloads.php
OR
C:\PathTOwget\wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off https://website.name/mydownloads.php
您可以在此处获取适用于Windows的Gnu wget.exe:
http://gnuwin32.sourceforge.net/packages/wget.htm
你可以通过大量单字母交换机最容易地判断这是一个wget.exe示例,但最明确的是交换机带有= off和PowerShell不使用的一起运行.zip开关(对我来说也是如此,多年使用wget.exe程序)。
或者,您可以尝试将其转换为PowerShell invoke-webrequest,但其中一些交换机在Invoke-WebRequest中没有直接模拟。