Win10无第三方软件快速批量下载小文件(双击运行方案)
解决方案:Windows10 批量快速下载URL文件(单文件双击运行)
核心思路
通过批处理文件(.bat)调用PowerShell,临时绕过执行策略限制,同时使用并行下载提升速度,最终生成单个可双击运行的文件,无需修改系统权限或安装第三方软件。
最终可直接使用的批处理文件
将以下内容保存为批量下载.bat,与你的urls.txt放在同一文件夹下,双击即可运行:
@echo off powershell -ExecutionPolicy Bypass -Command ^ "$failedUrls = @(); ^ Get-Content .\urls.txt | ForEach-Object -ThrottleLimit 15 { ^ $url = $_; ^ $fileName = Split-Path -Leaf $url; ^ Start-Job -ScriptBlock { ^ try { ^ Invoke-WebRequest -Uri $args[0] -OutFile $args[1] -ErrorAction Stop; ^ Write-Host "✅ 成功下载: $($args[1])" ^ } catch { ^ Write-Host "❌ 下载失败: $($args[0])"; ^ $args[2].Add($args[0]) ^ } ^ } -ArgumentList $url, $fileName, $failedUrls ^ }; ^ Get-Job | Wait-Job | Receive-Job; ^ Get-Job | Remove-Job; ^ if ($failedUrls.Count -gt 0) { ^ $failedUrls | Out-File .\failed_urls.txt -Encoding utf8; ^ Write-Host "`n⚠️ 下载完成,共 $($failedUrls.Count) 个文件失败,详情见 failed_urls.txt" ^ } else { ^ Write-Host "`n🎉 所有文件下载完成" ^ }"
关键细节说明
- 绕过执行策略:使用
-ExecutionPolicy Bypass参数,临时跳过PowerShell的脚本执行限制,无需用户修改系统权限设置,解决之前download.ps1无法加载的问题。 - 并行下载提速:通过
Start-Job启动后台下载任务,配合-ThrottleLimit 15控制最大并发数(可根据网络情况调整为10-20),相比顺序下载大幅提升1万+小文件的下载效率。 - 错误处理:自动记录下载失败的URL到
failed_urls.txt,方便后续补下;同时在控制台输出成功/失败提示,清晰掌握进度。 - 单文件运行:所有逻辑打包在一个.bat文件中,双击即可执行,无需额外依赖。
注意事项
- 确保
urls.txt与批处理文件在同一目录下,每行一个URL。 - 如果部分网站限制并发连接,可适当降低
-ThrottleLimit的数值(比如改为10)。 - 下载的文件会保存在批处理文件所在的目录中。
内容的提问来源于stack exchange,提问作者stkvtflw
相关产品推荐
相关产品推荐

