我想知道是否有一种方法可以仅使用 Windows(XP 和 7)中的标准程序并通过批处理脚本进行 http 下载,而无需使用 PowerShell。
请不要提供我需要安装的程序(除非我可以通过命令行安装它们,而不需要 PowerShell)。
有人可以帮帮我吗?
编辑:
我想知道是否有一种方法可以单独使用批处理脚本,而不需要其他类型的脚本,我没有看到这个问题,但有人将我标记为重复...
答案1
如果您有权访问网络共享,则可以使用获得从命令行下载文件。
- 从以下位置下载二进制文件和依赖项 zip 文件http://gnuwin32.sourceforge.net/packages/wget.htm。
- 将它们提取到批处理文件可以访问的网络共享文件夹中。
在您的批处理文件中,要下载文件,请输入以下行:
\\servername\sharename\wget.exe [URL]
然后该文件将被下载到工作目录,然后您可以在批处理脚本中运行下载的文件。
如果您无权访问运行这些批处理脚本的计算机上的网络共享,只需将 wget 文件复制到与批处理脚本相同的文件夹中,然后使用以下命令调用它:
wget.exe [URL]
答案2
当然,还有 Internet Explorer,它确实符合您的描述,因为它可以从命令行启动,尽管它是交互式的,可能不是您所寻求的。
可能存在诸如 WinHttp.WinHttpRequest.5.1 或 XMLHTTP 之类的对象,它们是 Windows 自带的,可以用来通过 HTTP 抓取文件。
它可以通过 WSH(Windows Scripting Host)使用。
您需要输入的行数很多/很复杂,您可能只想编写一个脚本并下载它(可以使用内置的 FTP 命令完成)。
但是,如果您要下载脚本,那么下载该脚本真的比下载 cURL 或 wget 等通用工具更有优势吗?
(就我而言,答案是肯定的。但你的情况可能有所不同,所以请仔细考虑一下答案。)
在操作系统自带的功能中,WSH 是迄今为止我个人使用过的最佳解决方案,可以通过自动化实现 HTTP。
答案3
Bitsadmin.exe 是 Windows 附带的命令行工具。这是一个相当复杂的命令,具有非常多的参数/标志/选项。它控制的服务(后台智能传输服务)由 Windows 本身用于下载更新包等,但可用于从任意网站执行简单的文件下载。