如何在不使用任何外部工具的情况下下载带有批处理文件的文件?

恩波科马卡

首先要弄清楚这个问题是针对HTTP下载的。对于FTP,我可能会问(并回答)另一个问题。这是一些类似的问题-但我想更精确一些。

除了排除外部工具外,我还希望该解决方案适用于尽可能广泛的Windows计算机类型(包括XP,Win2003,Vista,它们仍然有足够的份额)。另外,作为WSH一种可能的选择,我更喜欢不使用临时文件,而不要将所有内容打包在一个.bat文件中(jscript和vbscript都可以)。

有什么可能的方法。

  1. 使用BITSADMIN的“纯”批处理解决方案-每台Windows机器上都可以使用的命令行实用工具。虽然不是很方便,但是它是/不应该使用其他脚本语言的唯一选择。
  2. 使用WSH -三种方法都是可能的- WinHTTP的MSXML2.XMLHTTPInternetExlorer.Application -所有的人都可以访问的ActiveX,以对象的我是多么喜欢them.WinHTTP和MSXML2.XMLHTTP在自己的能力非常相似,但WinHTTP的有信誉更稳定。InternetExlorer.Application实际上只是可通过ActiveX对象访问的Internet资源管理器,并且某些UI元素是不可避免的(是吗?),因此我将跳过这一部分。
  3. 使用.NET-可以使用Jscript.net使用所有三个默认.NET编译器(Jscript.net,VB.Net,C#)创建一个混合批处理文件,没有冗余错误消息,所以我更喜欢它。忽略存在一个已编译.exe的事实,所有代码都在一个文件中,因此对我来说,这符合要求:-)。使用.NET,我们可以使用System.Net.WebClient或System.Net.HttpWebRequest(WebClient依赖于它)或
    System.Web.HttpRequest,但现在我只发布System.Net.WebClient解决方案,这里也提供了更多可通过WSH访问的相同ActiveX对象,因此确实有很多方法可以下载文件使用.Net。将来可能会更新我的答案。无论如何,只有Webclient是专门为下载而设计的。
  4. 使用powershell-具有与.NET相同的可能性,但安装在所有可能遇到的计算机上的机会较少,因此我也将跳过这一步。
恩波科马卡

答案。所有脚本都应以.bat/.cmd扩展名保存,并且可以直接用作批处理脚本。

  1. Certutuil(由于最新的win10版本中的某些原因,该路径被识别为trojan thread):

    certutil.exe -urlcache -split -f“ https://download.sysinternals.com/files/PSTools.zip” pstools.zip

为了简便起见,可以使用宏:

set "download=certutil.exe -urlcache -split -f"
%download% "https://download.sysinternals.com/files/PSTools.zip" pstools.zip

可以滥用CertUtil命令从Internet下载文件。从Vista开始默认在Windows中可用。对于WinXP Server 2003管理工具是必需的。

  1. Bitsadmin

最简单的使用方式

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip

与宏:

set "dnld=bitsadmin /transfer myDownloadJob /download /priority normal"
%dnld% "https://download.sysinternals.com/files/PSTools.zip" %cd%\pstools.zip

或使用bitsDownloader.bat

call bitsDownloader.bat "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
  1. winhhtpjs.bat是使用WinHttpRequest的命令行HTTP客户端,它可以执行整个HTTP(POST,DELETE,..)请求范围,也可以用于文件下载(不是太大的文件)。添加。
call winhhtpjs.bat "https://example.com/files/some.zip" -saveTo "c:\somezip.zip" 
  1. XMLHTTPDownloadJS.bat是使用MSXML2.XMLHTTP对象下载文件的bat文件。不提供像winhhtpjs.bat这样丰富的选项,尽管仍然是一个选项:

    调用XMLHTTPDownloadJS.bat“ https://download.sysinternals.com/files/PSTools.zip pst2.zip” pstools.zip

  2. WebClientDownload.bat使用.NET System.Net.WebClient类。它会创建一个小的exe文件以进行自我编译,并且需要安装.net框架。由于该类是在.net的早期版本中提供的,因此它向后兼容

call webclientDownload.bat "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
  1. 在Windows 10的最新版本中,我们具有CURL命令,尽管它不是向后兼容的选项。请注意,默认情况下,只有最新版本的Windows才安装了CURL:

    curl“ https://download.sysinternals.com/files/PSTools.zip”-输出pstools.zip

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JSF / Seam:如何在没有用户干预的情况下下载和打印动态生成的PDF文件?

如何在不解码的情况下使用Python下载带有请求的.gz文件?

如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/ unzip)文件和文件夹?

在Inno Setup中如何在不使用批处理文件的情况下执行命令行工具

如何在没有“离开页面”对话框或任何其他提示的情况下下载文件?

如何在不使用具有下载属性的<a>元素或服务器的情况下下载文件?

如何在不知道文件类型或文件名的情况下下载文件?

如何在不使用URLSessionDownloadTask使用的自动分块的情况下下载大文件

如何在2020年不使用XCode且不下载任何配置文件的情况下获取设备UDID

如何在不使用Android Studio的情况下下载模拟器

如何在批处理文件中解析带有特殊定界符的文件?

在不使用批处理文件的浏览器的情况下打开URL

如何在不显示任何窗口的情况下从批处理文件运行音频

如何在批处理文件中批量重命名带有多个点的文件?

如何在不使用媒体创建工具的情况下下载Windows 10 1511 ISO?

如何在没有浏览器的情况下下载文件并打开/保存对话框批处理?

如何在没有提示的情况下使用Python静默运行批处理文件?

如何在没有安全下载管理器(SDM)的情况下下载软件?如何打开.sdx文件?

如何在不使用其他zip工具的情况下使批处理脚本解压缩受密码保护的.zip文件?

如何在不启动“命令窗口”的情况下运行批处理文件?

如何在批处理文件中不使用WinSCP更改标题

在使用批处理文件的情况下,在 n 次下载后退出 youtube-dl

如何在带有批处理文件的文件夹中循环

如何在不使用客户端缓存的情况下下载新版本的文件?

如何在 CMAKEList 中执行外部批处理文件

如何使用批处理文件下载 MSI

如何使用带有批处理文件的 youtube-dl 下载 MP3?

如何在不使用android studio的情况下下载android模拟器

如何在不使用 Windows 机器的情况下下载 MSDNAA Windows ISO?