查明 PowerShell 实际运行的是哪个 wget
先解析别名,再应用 GNU Wget 的代理设置,然后用 PowerShell 语法设置进程环境变量。
Get-Command wget -All
Get-Command wget.exe -ErrorAction SilentlyContinue
在应用 GNU Wget 的配方之前,先在这个出问题的会话中运行这些命令。Windows PowerShell 5.1 把 wget 定义为 Invoke-WebRequest 的别名,而别名优先于同名的可执行文件。其他版本或自定义会话可能不同。
如果已经安装了 GNU Wget,请显式选择 wget.exe 或其完整路径,并用 PowerShell 语法提供它的环境:
$env:http_proxy = 'http://proxy.example.net:8080'
$env:https_proxy = 'http://proxy.example.net:8080'
wget.exe 'https://example.com/'
这些变量会传给之后启动的子进程。对于上面显示的 GNU Wget 命令,当 Wget 的实际配置中没有代理凭据时,HTTP 代理列表中的一条 HTTP 记录可以提供允许的公开请求所需的 URL。以 set 开头的 cmd.exe 赋值不是 PowerShell 的环境提供程序赋值。
如果要用的是 Invoke-WebRequest,就调用这个名称,并按需使用它支持的 -Proxy、-ProxyCredential 或 -ProxyUseDefaultCredentials 选项。GNU Wget 的环境示例并不能证明该 cmdlet 的路由或账户策略。