完全用批处理实现下载完文件自动关机,支持迅雷以及一些可以断点续传的下载软件
命令如下:
----------------------------------------------------------------------------------------
@echo off
:h
set n=0
for /F "delims=" %%a in (custom.txt) do if exist "%%a" set n=1
if "%n%"=="0" (shutdown -s -t 10) else (ping -n 60 127.1>nul&goto h)
-----------------------------------------------------------------------------------------
网上也有,但是感觉不够智能,所以修改了下.这个使用起来非常简单方便,除了此批处理外,还要创建一个文本文件,名字为custom.txt.
大家知道迅雷未下载完文件的后缀为.td和.ctf两个文件,批处理就是先判断下载目录里是否存在这两个后缀的文件,如果存在则60秒后重新扫描,如果不存在则关机.而下载路径与后缀则写在custom.txt文件里.
如我的常用下载目录为d:\software文件夹,我可以这样写:
---------------------
d:\software\*.td
d:\software\*.ctf
---------------------
路径与后缀都可以自行更改,如常用路径为e:\game\install文件夹,下载软件为世界之窗的内置下载器(为下载完成时后缀为.tw!)
---------------------------
e:\game\install\*.tw!)
---------------------------
然后把这两个文件放在同一个文件夹下,先运行下载软件,确认已经下载了之后,再运行批处理即可.
注意路径为custom.txt里设置过的路径.文件下载完成后回自动关机,或者自行修改批处理实现其他功能
下面简单解释一下(高手不要笑话,如有错误,请指出)
@echo off
关闭回显
:h
这个:h与下面的goto h配合,实现跳转,重新扫描
set n=0
让n=0
for /F "delims=" %%a in (custom.txt) do if exist "%%a" set n=1
这句有个for命令加上/f参数,把custom.txt文件中的每一行作为一个元素,然后执行do后面的命令,执行完一行然后执行下一行元素,%%a为变量,当读取第一行是%%a为第一行的元素,当读取第二行时为第二行的元素,delims用来告诉for每一行应该用什么作为分隔符.然后判断是否存在%%a,如果存在让n=1
if "%n%"=="0" (shutdown -s -t 10) else (ping -n 60 127.1>nul&goto h)
if判断语句,如果n的值为0,则关机,else等待60秒,回到:h处,重新执行.ping -n 60 127.1>nul的意思是延迟脚本运行时间并附值给空设备.
有些地方解释的不好,因为我也不是很清楚,所以就没有写出来,呵呵.
|