Matlab调用系统命令行利用Internet Download Manager(IDM)实现批量下载

日常使用IDM时,最常用的就是单个文件下载(添加任务),但是当需要下载的文件比较多时,就希望能够通过IDM实现简单快捷的批量下载,而不是一个文件一个文件地下载,本文将介绍IDM批量下载文件的几种形式。
IDM中常用的几种批量下载的方法

一、通过IDM界面批量下载

  • 添加批量任务
    这种方法比较适合文件命名不同但是高度相似(可以是按照数字排序的,也可以是按照字母顺序排序的)的同一类文件下载,如图所示,可以在地址一栏输入保持不变的部分,对于变化的部分用*(通配符)来替代,如果是*对应的数字,就可以在下面设置数字的变化范围。
    在这里插入图片描述
    填写之后如图所示,点击“确定”
    在这里插入图片描述
    可以根据需要在左下角选择文件保存的位置,在右下角确定文件的命名,如果希望文件命名中数字在前面,可以将"img*.jpg"修改为"*img.jpg"
    在这里插入图片描述

  • 导入文本文件
    这种方法需要先将多个文件的下载地址保存至txt文件中,再通过导入txt文件将所需文件的链接导入IDM中,和上面的方法一样,这种方法在保存的操作上不够灵活。如果我希望下载的文件分别下载至特定的文件中,或者我下载的文件有多处不一致,那么上述两种方法都还是比较费时。

二、系统命令行实现批量下载

首先,IDM提供了命令行操作的相关语法,IDM–>帮助–>教程
在这里插入图片描述
如果我们想把来着URL的内容保存至local,那么我们需要这样的一串语法

idman /d URL /p local

在这里插入图片描述
在利用matlab之前,我们现在系统命令行中尝试一下,注意这里需要将IDM.exe所在文件夹事先添加为环境变量,之后win+R,输入cmd,再输入idman,如果能够弹出IDM的窗口,说明idm已经在环境变量列表里面了,此时我们就可以在系统命令行中输入上面的命令,将URL的内容下载至local的位置(这里只是示意,实际使用URL需要是一个完整的地址(比如上面img的地址),local需要是自己电脑上一个具体的路径(比如D:\IDMfiles\)
在这里插入图片描述

三、matlab调用系统命令行实现批量下载

在matlab中调用系统命令行需要用到system这个命令,使用方法如下:
在这里插入图片描述
我们需要将上面的命令放入command变量中,并利用system来执行

在此之前我们先在matlab中检查一下环境变量中是否包含了IDMan.exe的安装路径

path1 = getenv('PATH')           %获得系统路径的字符串

如果path1中不包含IDMan.exe的安装路径,继续执行下面的操作

path1 = [path1 'IDM_path']   %字符串中加入IDM_path
setenv('PATH', path1)              %设置系统路径

此时再次执行

path1 = getenv('PATH')           %获得系统路径的字符串

如果包含了IDMan.exe的安装路径可以继续下面的操作

command='IDMan.exe /d URL /p local_path &';%需要提前给URL和local_path赋值,这个地方只是示意,实际操作需要将不同部分用strcat拼接起来
status=system(command);

利用这种方法,结合循环,可以更加灵活地实现IDM批量下载

几个注意事项:

  1. 上述setenv的操作不是永久的,一旦重启matlab就会失效,但是打开一次matlab执行一次即可,重复使用会造成IDMan.exe找不到自己的安装路径,从而报错,其实这个地方我也很疑惑,我明明已经在电脑上将IDMan.exe的安装路径添加进入环境变量里面了,并且在系统命令行也可以正常使用,但是matlab的getenv结果中并没有包含这个安装路径。。。
  2. 如果文件比较多,可以在命令中加入’/n’,同时在IDM–>选项–>下载中(1)将对话框相关的选项取消勾选,(2)编辑自定义”下载进度“对话框,将启动界面设置为”不显示“,这样在下载的过程中就不会弹出很多下载相关的窗口
  3. 注意命令中的空格
  4. 注意在matlab中执行的命令后面加上"&"符号,不然可能会造成system命令之后一直处于busy状态,无法进行下一步在这里插入图片描述
    这个链接中也有描述执行system之后程序一直处于busy状态的问题
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值