Windows 10 安装 wget 全攻略:手动配置与包管理器方案
2026/9/17 21:19:15 网站建设 项目流程

1. 为什么要折腾:Windows 10 原生没带 wget,太难受了

如果你常年混迹 Linux 服务器,一定对 wget 这个命令熟得不能再熟。它就像服务器界的“万能搬运工”——不管是要下载安装包、抓取网页、拉取脚本,还是做简单的资源镜像,一条wget打天下。但突然有一天你回到 Windows 10 桌面环境,想习惯性地敲一句wget http://xxx/package.zip,结果 PowerShell 或者 CMD 直接甩给你一句“不是内部或外部命令,也不是可运行的程序”,那种感觉就像老司机突然换了辆没有离合的车,浑身别扭。

更麻烦的是,很多教程、开源项目的安装脚本里都会写wget http://... -O ...这种命令。比如你照着某个一键配置脚本来操作,人脚本第一行就是 wget,你本地根本没这个命令,直接卡死在第一步。偏偏 Windows 10 默认不自带 wget(Windows 11 的某些版本开始内置了,但 10 是真没有),所以很多人第一次在 Windows 10 下装软件、拉资源,都要被这个小小的 wget 卡一下。

这篇文章就是写给那些在 Windows 10 下被 wget 折腾过的人。我会从零开始,把几种在 Windows 10 上装 wget 的方式都捋一遍,包括最省事的官方二进制包、适合批量管理的包管理器方式,以及一些实战中容易踩的坑。不管你是不想装额外软件、还是想顺手把 Windows 的包管理习惯也养起来,都能在这篇文章里找到适合自己的方案。

2. 装之前先搞清楚:你在 Windows 10 里到底想要哪种 wget

很多教程上来就让你去官网下一个 exe,复制到 System32 完事。这样确实能用,但我想先花点时间帮大家理清一个概念:Windows 10 下的 wget 并不是只有一种。你至少要分清三种来源,它们长得像,但“内核”完全不同。

2.1 GNU Wget:最正统的“老牌搬运工”

我们平时在 Linux 上用的 wget,全名叫 GNU Wget,是 GNU 项目维护的开源工具,支持 HTTP、HTTPS、FTP 等协议,支持断点续传、递归下载、限速,功能非常成熟。Windows 版本是由第三方志愿者编译的,通常是一个wget.exe单文件,官方发布页会提供 32 位和 64 位两种。

优点就是纯粹、轻量、和 Linux 上的行为基本一致;缺点是没有自动更新机制,如果你想升级版本,得自己重新下载覆盖。

2.2 BusyBox 里的 wget:嵌入式移植的轻量替代

BusyBox 是一个把很多 Unix 工具打包成单个可执行文件的项目,里面也包含一个 wget。它的体积很小,适合那些不想往系统目录塞一堆文件的人。但要注意,BusyBox 的 wget 功能比 GNU Wget 精简不少,比如某些参数(比如递归下载的-r)支持得不如 GNU 版完整,日常简单下载没问题,遇到复杂场景就容易“失灵”。

2.3 PowerShell 里的 Invoke-WebRequest:系统自带但写法不一样

其实严格来说,Windows 10 也不是完全没有 wget 的“替代品”。你打开 PowerShell,输入Invoke-WebRequest,用法类似但语法完全不同。很多人图省事会用curl.exe,但 Windows 10 自带的 curl 在 PowerShell 里又有个别名问题,容易输出乱码或者直接没反应。

所以如果你想在 Windows 10 下获得“和 Linux 一模一样的 wget 体验”,最靠谱的选择就是装 GNU Wget。下面我会重点讲这条路。

3. 最快的方式:官方二进制包手动安装,三步搞定

如果你只是临时要用 wget 拉个安装包、跑个脚本,不想折腾包管理器,那手动下载 GNU Wget 的 Windows 版就是最佳选择。整个过程不超过两分钟。

3.1 去哪里下载靠谱的 wget.exe

先说一个大坑:不要去乱七八糟的“下载站”点那种高速下载按钮。很多第三方站点的 wget.exe 要么捆绑了推广软件,要么版本老旧,甚至有人恶意打包。记住,GNU Wget 的 Windows 官方编译版本主要在eternallybored.org和 GNU 官网的镜像列表页里能找到。

这里我推荐直接在浏览器里打开 GNU 项目官网的 Windows 版本说明页(https://eternallybored.org/misc/wget/),上面会列出版本号、发布日期,以及 32 位和 64 位的 zip 包。注意看清楚你系统是 64 位还是 32 位——现在绝大多数 Windows 10 都是 64 位,但老电脑还有 32 位,选错的话 exe 可能无法运行。

下载下来的是一个 zip 压缩包,解压后里面一般有一个wget.exe和一份文档。有的版本还带个wget64.exe之类的,其实选主程序就行。

3.2 放在哪里最合适:两种摆放位置对比

拿到wget.exe之后,摆放位置因人而异。我见过两种主流做法:

方案 A:直接放到 C:\Windows\System32

这是最省事的方式。把wget.exe丢进去之后,在任何目录打开 CMD 或 PowerShell,直接敲wget就能用。因为 System32 是系统环境变量 PATH 里的默认搜索路径,所以不需要额外配置。

注意:往 System32 里丢 exe 有一个潜在风险——你的杀毒软件可能弹窗警告“修改系统目录”,这是正常现象,信任即可。但如果哪天你重新安装系统,这个文件就没了,需要重新放。

方案 B:单独建一个工具目录,手动配置 PATH

如果你有整理癖,或者你其实还有一堆其他小工具(比如 curl、jq、ffmpeg 等),建议在某个盘符下建一个D:\Tools之类的文件夹,把wget.exe放进去,然后把这个目录加入系统环境变量 PATH。

具体操作步骤:

  1. 按下Win + X,选择“系统”。
  2. 点击右侧“高级系统设置”。
  3. 点击“环境变量”,在“系统变量”里找到Path,双击编辑。
  4. 点击“新建”,把你的工具目录路径填进去,比如D:\Tools
  5. 一路点击“确定”保存,重新打开一个 CMD 窗口生效。

方案 B 的好处是以后你再想添加其他小工具,直接丢进这个目录就行,不用反复污染 System32,管理起来也更清晰。如果你玩 Linux 习惯把软件装到/opt或者自定义目录,那你在 Windows 下也一定会喜欢方案 B。

3.3 验证安装是否成功

打开一个全新的 CMD 或 PowerShell 窗口(注意:如果是刚才已经开着的窗口,最好关掉重开,否则环境变量不会刷新),输入:

wget --version

如果看到类似下面的输出,就说明安装成功了:

GNU Wget 1.21.4 built on mingw32. +digest +https +ipv6 +large-file +nls +ntlm +opie +ssl/openssl

其中带+https+ssl/openssl说明这个版本支持 HTTPS 下载,这点很重要——很多小白下载的旧版 wget.exe 不支持 HTTPS,访问加密链接会直接报错。

4. 一劳永逸的玩法:用包管理器管理 wget,升级卸载不闹心

如果你不是一个“装一个工具就没后续”的人,而是想在 Windows 10 上也体验一把“包管理器一键安装、升级、卸载”的爽快感,那我建议你了解一下 Chocolatey 和 winget 这两个方案。

4.1 为啥要用包管理器:类比一下手机应用商店

你可以把包管理器理解成手机上的应用商店。以前你装一个软件,得去官网找下载链接,下载后运行安装包,点一堆“下一步”,装完之后软件怎么升级还得自己盯。换成包管理器之后,你在命令行敲一句指令,软件就自动从安全源下载、安装、配置环境变量,升级和卸载也是一条命令的事,非常省心。

Windows 10 上比较主流的两个包管理器就是 Chocolatey 和 winget。winget 是微软官方出的,Windows 10 较新版本自带,但软件库相对没那么全;Chocolatey 是社区老牌工具,软件库非常全,而且很多 Dev 工具都能找到。

4.2 用 Chocolatey 安装 wget 的完整流程

Chocolatey 的安装本身需要管理员权限。先在 Windows 搜索框输入“PowerShell”,右键选择“以管理员身份运行”。然后执行官方安装命令:

Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

安装完之后,重开一个管理员 PowerShell,然后一次性安装 wget:

choco install wget -y

Chocolatey 会自动下载 wget,并帮你放到系统 PATH 能覆盖到的目录里。以后想卸载,敲choco uninstall wget -y就行,非常干净。

我当时第一次用 Chocolatey 装 wget 的时候,最大感受就是“终于不用去记版本号了”——你只需要管一个“包名”,其他的安装细节全是它的事。而且以后这个源里的 wget 更新了,你执行choco upgrade wget -y就能顺手升级,不会再出现“3 年之后还在用旧版 wget 导致 https 握手失败”的尴尬。

4.3 用 winget 安装 wget:系统自带,但你可能需要先确认版本

winget 是 Windows 10 较新版本(尤其是 1809 之后)开始内置的应用安装器。打开 CMD 输入winget --version,如果能显示版本号,说明你的系统已经内置了。

安装 wget 的命令很简单:

winget install GNU.Wget

或者用更通用的搜索方式:

winget search wget

然后根据列出的包名,用winget install加对应的 ID 即可。

但我个人体验下来,winget 里 wget 这个包的维护活跃度有时不如 Chocolatey 稳定,偶尔会出现“找到 0 个匹配包”的情况。如果碰到这种问题,别纠结,直接换 Chocolatey 或者手动安装方案,能达到目的就行。

5. 实操中绕不开的细节:环境变量刷新、权限问题和下载参数选择

安装好 wget 只是第一步,真正用起来之后你会发现,还有一些 Windows 特有的小问题值得提前了解。

5.1 为什么我装完 wget 之后还是提示找不到命令

这个问题十个人里有八个会遇到,原因基本都出在“环境变量没刷新”。你装好 wget 之后,如果是在一个已经打开的 CMD/PowerShell 窗口里运行命令,那窗口可能还停留在旧环境,不认识新加入 PATH 的 exe。解决办法很简单:关掉当前窗口,重新开一个

但如果重新开窗口还不行,那就要检查一下 wget.exe 是否真的在你配置的 PATH 目录里。在 CMD 里执行:

where wget

这条命令会输出 wget 的实际路径。如果显示“找不到”,说明 PATH 里没有它;如果显示路径了但执行时还是“无法识别”,那大概率是你 PATH 里那个目录的权限有问题,或者你同时装了很多个 wget 冲突了。

5.2 下载路径和文件名的坑:cmd 的默认目录和 PowerShell 的转义

在 Windows 上使用 wget,默认下载位置就是你当前打开的命令行所在目录。很多人下载完东西找不到文件,就是因为不清楚当前目录到底是哪里。

注意,在 CMD 里用cd切换到某个目录,然后执行 wget,文件就会下载到那个目录。但在 PowerShell 里切换目录的方式略有区别,而且 PowerShell 对特殊字符的转义规则和 CMD 不一样。比如你想下载一个带&符号的 URL,在 CMD 里通常没问题,但 PowerShell 里&是特殊字符,需要用反引号转义或者用引号把 URL 包起来。

我的建议是:日常下载任务尽量用 CMD 窗口,避开 PowerShell 的转义蛋疼问题。如果你非要在 PowerShell 里用,就把整个 URL 用双引号包起来。

5.3wget -Owget -Pwget -r这些参数,分别该咋用

wget 的参数其实不难记,但 Windows 用户第一次上手容易混淆。

参数作用示例
-O指定下载后的文件名wget -O setup.zip https://example.com/download.zip
-P指定下载到哪个目录wget -P D:\downloads https://example.com/file.zip
-r递归下载,用于抓取整个目录网页wget -r -np https://example.com/docs/
-c断点续传,继续之前未完成的下载wget -c https://example.com/bigfile.zip
--limit-rate限制下载速度,比如--limit-rate=200kwget --limit-rate=200k https://example.com/bigfile.zip
-q安静模式,不输出过程信息wget -q https://example.com/file.zip

我最常用的组合是wget -O-c。比如下一个大文件下到一半断了,重新执行一遍相同的命令,加个-c就能从断点继续,不用从头再来。Windows 下这个大文件下载场景特别常见,因为很多安装包动辄几个 GB。

5.4 遇到 HTTPS 证书报错怎么办

有时候你用 wget 下载一个 HTTPS 链接,结果报出类似 “ERROR: cannot verify xxx’s certificate” 的错误。这通常有两种情况:一是你用的 wget.exe 版本太老,不包含新版根证书;二是某些内网/自建服务的证书不在系统受信任的根证书列表里。

如果是第一种,升级 wget 版本到最新版即可。如果是第二种,如果你明确知道这个网站是可信任的内网地址,可以临时用--no-check-certificate跳过证书校验:

wget --no-check-certificate https://192.168.1.100/package.zip

但我得提醒一句:跳过证书校验是一种应急手段,不要把它当成日常习惯,尤其是下载公网软件时,不验证证书有可能导致下载到被篡改的文件,存在安全隐患。

6. 直接把坑踩平的进阶技巧:补一个“万能下载脚本”,顺手解决 xftp/xshell 提示评估期过期

很多时候我们折腾完 wget,并不是单纯为了用 wget,而是为了解决某个具体问题。比如最近很多人在网上搜“重置 xftp7、xshell7 的评估期的脚本”,其中一个曲线救国的思路就是——先想办法在 Windows 上把脚本下载下来,再执行

这类脚本一般托管在一个 HTTP 链接里,如果你有 wget,就可以直接用:

wget -O reset_xshell.ps1 http://your-script-url/reset.ps1 powershell -ExecutionPolicy Bypass -File reset_xshell.ps1

熟悉 Linux 安装流程的朋友可能已经发现了,这其实就是在模仿 Linux 下“下载脚本并执行”的经典操作模式。Windows 上有了 wget,很多 Linux 世界的操作习惯都能顺延过来,效率提升非常明显。

我自己还习惯做一个更“懒”的操作:写一个批处理文件download.bat,内容只有一行:

@echo off wget -c -O %2 %1

然后我把这个 bat 放到 PATH 目录里,以后再想下载东西,直接敲:

download https://example.com/file.zip file.zip

这样默认带上了断点续传,免了每次敲参数的麻烦。这个技巧虽然简单,但在 Windows 上能省不少事。

7. 常见问题速查表:我见过的所有 wget 报错都在这里

下面这个表是我在 Windows 10 上折腾 wget 这几年,遇到的问题汇总,按频率排序,你可以直接按图索骥。

问题现象可能原因解决办法
提示“不是内部或外部命令”没安装 wget 或环境变量没生效重新安装;重新打开 CMD,或者手动检查 PATH 配置
下载 https 链接时报证书错误wget 版本过旧或目标站点证书不受信任升级 wget;确认站点可信时临时加--no-check-certificate
下载完成但找不到文件当前目录不是你以为的目录cd先切到期望目录,或用-P指定下载目录
文件下载到一半中断网络断流或服务器断开重新执行原命令并加-c参数续传
文件名乱码URL 包含中文或非 ASCII 字符手动用-O指定文件名
杀毒软件报警告/删除 wget.exe由于 wget 支持下载远程脚本,容易被杀软误报到官网重新下载,并加入杀软信任列表
下载速度远低于带宽服务器限速或者没启用断点续传导致无法多线程--limit-rate反查限速,或换 aria2 等工具增强下载

这里想特别说一句杀软误报的问题。GNU Wget 很多 Windows 编译版是开源的,逻辑本身没什么问题,但因为它的功能就是“下载远程资源”,和很多木马后门的下载器行为很像,所以部分杀软会误报。遇到这种情况,建议优先从官方渠道重新下载,并且看一下文件的数字签名是否有效。如果杀软还是报毒,可以考虑用 Chocolatey 安装的版本,因为 Chocolatey 的包维护者一般会处理好这些信任问题。

8. 我的个人实践心得:Windows 10 下 wget 的最终选择方案

说到最后,肯定有人想问我:你个人到底用的是哪种方案?

我的答案可能会让你意外——我桌面工作机上用 Chocolatey 管理的 wget,但在偶发需求的虚拟机里,我会直接放一个最新版的 wget.exe 到自定义工具目录里。原因很简单:

第一,日常新增软件我基本都是走 Chocolatey,wget 跟着统一升级,不用单独操心。每次重装系统之后,一条choco install wget -y就恢复如初,省心。

第二,在那些不常打开的 Windows 虚拟机里,装 Chocolatey 有点“大炮打蚊子”,反而不如手动扔一个 exe 干净。那种场景下工具越少越好,一个 wget.exe 摆在那里,随用随删,系统也不会被包管理器的依赖拖累。

所以我给你的最终建议是:如果你只是偶尔用一下 wget,那就手动下载官方编译版,丢到D:\Tools并配置 PATH;如果你经常需要在 Windows 上折腾开源软件、脚本部署,那还是趁早把 Chocolatey 装起来,让 wget 成为你 Windows 工具箱里的“第一块积木”。毕竟有了包管理器,后面的 git、node、python、ffmpeg 之类的东西都会变得异常好装。把这一步走顺了,你在 Windows 下的生产力提升可不是一点点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询