前言
'wget'命令是一个在Linux和类Unix操作系统中经常使用的网络命令,用途是从指定的URL下载文件。它支持HTTP、HTTPS和FTP协议,支持断点续传,可以下载整个网站,当然windows环境下也可以使用,参考地址:GNU Wget 1.21.4 for Windows。
‘bat‘称为批处理脚本,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。
使用是为了什么目的?
为了简化代码的编写,不依赖其他idea,批量进行视频下载。
整体流程
download ━━━ 根文件夹
┗━━ download.bat 批处理文件
┗━━ urls.txt url下载地址文件
┗━━ wget.exe 'wget'工具
批处理文件
先展示下批处理的脚本逻辑:
@echo off &setlocal enabledelayedexpansion
color 2
for /f %%a in (urls.txt) do (
set name=%%~dpa
set path=!name:https:\zeekol.net\Video\=Video\!
if not exist !path! (
echo !path!%%~na file not existed,to create.
mkdir !path!
) else (
echo !path!%%~na file existed.
)
set c=!path!%%~nxa
echo %%a _to_ !c!
wget %%a -O !c!
)
pause
接下来一一解释:
“setlocal enabledelayedexpansion” :设置本地为延迟扩展。就是为了能在for里面使用set的变量
“color”:设置窗口内部文字颜色。
Code (Hex) | Color |
0 | black |
1 | blue |
2 | green |
3 | cyan |
4 | red |
5 | magenta |
6 | yellow/brown |
7 | white |
8 | gray |
9 | bright blue |
A | brlght green |
B | bright cyan |
C | bright red |
D | bright magenta |
E | bright yellow |
F | white |
“for”:循环语法 for [参数] %%变量名 in (匹配符) do (执行的命令)
“/f” :读取文件
“%%a”:每一行输出内容的变量
“set name=%%~dpa”:设置一个名称为name的变量,这里要注意~dpa是啥意思。
%%a | 文件完整信息 |
%%~da | 保留文件所在驱动器信息 |
%%~pa | 保留文件所在路径信息 |
%%~na | 保留文件名信息 |
%%~xa | 保留文件后缀信息 |
%%~za | 保留文件大小信息 |
%%~ta | 保留文件修改时间信息 |
%%~dpa | 保留文件所在驱动器和所在路径信息 |
%%~nxa | 保留文件名及后缀信息 |
%%~pnxa | 保留文件所在路径及文件名和后缀信息 |
%%~dpna | 保留文件驱动器、路径、文件名信息 |
%%~dpnxa | 保留文件驱动器、路径、文件名、后缀信息 |
“set path=!name:https:\www.baidu.com\Video\=Video\!”:使用字符串替换功能将变量“name”中的特定字符串替换为“Video”目录。这里的目的是将URL中的目录部分替换为本地文件系统中的目录。
if not exist !path!
:检查变量“path”指定的目录是否存在。
echo !path!%%~na file not existed,to create.
:如果目录不存在,则输出一条消息,指示目录不存在,并准备创建该目录。
mkdir !path!
:创建目录。
echo !path!%%~na file existed.
:输出一条消息,指示目录已存在。
set c=!path!%%~nxa
:从变量“%%a”中提取文件名和扩展名,并将其与变量“path”拼接,形成完整的文件路径和文件名,并将其赋值给变量“c”。
echo %%a _to_ !c!
:输出一条消息,指示正在下载的URL和保存的文件路径和文件名。
wget %%a -O !c!
:使用wget工具下载URL,并将文件保存到变量“c”指定的路径和文件名。
pause
:在命令行窗口中暂停,等待用户按下任意键。
结语
下载视频的方式多种多样,对于批量下载我在临时使用中采用懒办法。此外方便快捷的语法推荐py、go等语言。
有兴趣的小伙伴可以关注一波
o(* ̄▽ ̄*)ブ