Windows 10 安装 wget 全攻略:手动配置与包管理器方案
发布时间:2026/9/17 21:19:24 作者:尧图编辑部 阅读量:1,286

1. 为什么要折腾Windows 10 原生没带 wget太难受了如果你常年混迹 Linux 服务器一定对 wget 这个命令熟得不能再熟。它就像服务器界的“万能搬运工”——不管是要下载安装包、抓取网页、拉取脚本还是做简单的资源镜像一条wget打天下。但突然有一天你回到 Windows 10 桌面环境想习惯性地敲一句wget http://xxx/package.zip结果 PowerShell 或者 CMD 直接甩给你一句“不是内部或外部命令也不是可运行的程序”那种感觉就像老司机突然换了辆没有离合的车浑身别扭。更麻烦的是很多教程、开源项目的安装脚本里都会写wget http://... -O ...这种命令。比如你照着某个一键配置脚本来操作人脚本第一行就是 wget你本地根本没这个命令直接卡死在第一步。偏偏 Windows 10 默认不自带 wgetWindows 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。具体操作步骤按下Win X选择“系统”。点击右侧“高级系统设置”。点击“环境变量”在“系统变量”里找到Path双击编辑。点击“新建”把你的工具目录路径填进去比如D:\Tools。一路点击“确定”保存重新打开一个 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然后一次性安装 wgetchoco install wget -yChocolatey 会自动下载 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 -O、wget -P、wget -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-rate200kwget --limit-rate200k 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 到自定义工具目录里。原因很简单第一日常新增软件我基本都是走 Chocolateywget 跟着统一升级不用单独操心。每次重装系统之后一条choco install wget -y就恢复如初省心。第二在那些不常打开的 Windows 虚拟机里装 Chocolatey 有点“大炮打蚊子”反而不如手动扔一个 exe 干净。那种场景下工具越少越好一个 wget.exe 摆在那里随用随删系统也不会被包管理器的依赖拖累。所以我给你的最终建议是如果你只是偶尔用一下 wget那就手动下载官方编译版丢到D:\Tools并配置 PATH如果你经常需要在 Windows 上折腾开源软件、脚本部署那还是趁早把 Chocolatey 装起来让 wget 成为你 Windows 工具箱里的“第一块积木”。毕竟有了包管理器后面的 git、node、python、ffmpeg 之类的东西都会变得异常好装。把这一步走顺了你在 Windows 下的生产力提升可不是一点点。