-
保存脚本为GBK编码
打开记事本或任何文本编辑器。
将脚本代码复制到记事本中。
选择“文件” -> “另存为”。
在“编码”下拉菜单中选择“ANSI”(这实际上是GBK编码)。-
保存文件为 download_files.bat
-
运行脚本(鼠标左键暂停脚本,右键继续执行)
将上述脚本保存为 download_files.bat
将 download_files.bat 放在包含 .txt 文件的文件夹中。
双击 download_files.bat 文件运行脚本。
- 特此注意 :文件夹名中文会导致程序闪退,尽量使用英文或者数字
@echo off
:: 设置代码页为GBK
chcp 936 > nul
setlocal enabledelayedexpansion
:: 获取当前日期
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i
set year=!datetime:~0,4!
set month=!datetime:~4,2!
set day=!datetime:~6,2!
:: 设置目标文件夹
set TARGET_FOLDER=%cd%\!year!\!month!\!day!
:: 检查目标文件夹是否存在,不存在则创建
if not exist "%TARGET_FOLDER%" (
echo 目标文件夹 %TARGET_FOLDER% 不存在,正在创建...
mkdir "%TARGET_FOLDER%"
if not exist "%TARGET_FOLDER%" (
echo 无法创建目标文件夹 %TARGET_FOLDER%。
pause
exit /b
) else (
echo 目标文件夹 %TARGET_FOLDER% 已创建。
)
) else (
echo 目标文件夹 %TARGET_FOLDER% 已存在。
)
:: 设置下载成功的URL记录文件
set SUCCESS_FILE=%TARGET_FOLDER%\downloaded_urls.txt
:: 创建或清空下载成功的URL记录文件
if exist "%SUCCESS_FILE%" del "%SUCCESS_FILE%"
:: 初始化计数器
set success_count=0
:: 设置要处理的文件类型
set FILE_TYPE=*.txt
:: 遍历当前文件夹内的所有指定类型的文件
for %%f in (%FILE_TYPE%) do (
set FILE=%%f
echo 正在处理文件: !FILE!
:: 读取URL列表
for /f "tokens=*" %%a in (!FILE!) do (
set URL=%%a
:: 简单的URL验证
if "!URL:~0,7!" == "http://" (
echo URL: !URL!
:: 提取文件名
for %%i in ("!URL!") do set FILENAME=%TARGET_FOLDER%\%%~nxi
echo 文件名: !FILENAME!
:: 使用curl下载文件,显示进度条并支持断点续传
curl -# -C - -o "!FILENAME!" "!URL!"
:: 使用wget下载文件,显示进度条并支持断点续传
rem wget -c -v -O "!FILENAME!" "!URL!"
if %errorlevel% equ 0 (
echo 下载成功: !FILENAME!
echo !URL! >> "%SUCCESS_FILE%"
set /a success_count+=1
) else (
echo 下载失败: !URL!
)
) else if "!URL:~0,8!" == "https://" (
echo URL: !URL!
:: 提取文件名
for %%i in ("!URL!") do set FILENAME=%TARGET_FOLDER%\%%~nxi
echo 文件名: !FILENAME!
:: 使用curl下载文件,显示进度条并支持断点续传
curl -# -C - -o "!FILENAME!" "!URL!"
:: 使用wget下载文件,显示进度条并支持断点续传
rem wget -c -v -O "!FILENAME!" "!URL!"
if %errorlevel% equ 0 (
echo 下载成功: !FILENAME!
echo !URL! >> "%SUCCESS_FILE%"
set /a success_count+=1
) else (
echo 下载失败: !URL!
)
) else (
echo 跳过非URL行: !URL!
)
)
)
:: 显示下载成功的文件数量
echo 总共下载成功的文件数量: %success_count%
:: 将下载成功的文件数量写入到记录文件
echo 总共下载成功的文件数量: %success_count% >> "%SUCCESS_FILE%"
endlocal
pause
image.png
@echo off
:: 设置代码页为GBK
chcp 936 > nul
setlocal enabledelayedexpansion
:: 获取当前日期
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i
set year=!datetime:~0,4!
set month=!datetime:~4,2!
set day=!datetime:~6,2!
:: 设置目标文件夹
set TARGET_FOLDER=%cd%\!year!\!month!\!day!
:: 检查目标文件夹是否存在,不存在则创建
if not exist "%TARGET_FOLDER%" (
echo 目标文件夹 %TARGET_FOLDER% 不存在,正在创建...
mkdir "%TARGET_FOLDER%"
if not exist "%TARGET_FOLDER%" (
echo 无法创建目标文件夹 %TARGET_FOLDER%。
pause
exit /b
) else (
echo 目标文件夹 %TARGET_FOLDER% 已创建。
)
) else (
echo 目标文件夹 %TARGET_FOLDER% 已存在。
)
:: 设置下载成功的URL记录文件
set SUCCESS_FILE=%TARGET_FOLDER%\downloaded_urls.txt
:: 创建或清空下载成功的URL记录文件
if exist "%SUCCESS_FILE%" del "%SUCCESS_FILE%"
:: 初始化计数器
set success_count=0
:: 设置要处理的文件类型
set FILE_TYPE=*.txt
:: 遍历当前文件夹内的所有指定类型的文件
for %%f in (%FILE_TYPE%) do (
set FILE=%%f
echo 正在处理文件: !FILE!
:: 读取URL列表并下载文件
for /f "tokens=*" %%a in (!FILE!) do (
set "URL=%%a"
:: 检查URL是否以http://或https://开头
if "!URL:~0,7!"=="http://" (
set "VALID_URL=true"
) else if "!URL:~0,8!"=="https://" (
set "VALID_URL=true"
) else (
set "VALID_URL=false"
)
if "!VALID_URL!"=="true" (
echo 下载: !URL!
:: 提取文件名
for %%i in ("!URL!") do set "FILENAME=%TARGET_FOLDER%\%%~nxi"
:: 使用curl下载文件
curl -# -C - -o "!FILENAME!" "!URL!"
if !errorlevel! equ 0 (
echo 成功: !FILENAME!
echo !URL! >> "%SUCCESS_FILE%"
set /a success_count+=1
) else (
echo 失败: !URL!
)
) else (
echo 跳过非URL行: !URL!
)
)
)
:: 显示并记录成功数量
echo 下载成功文件数量: %success_count%
echo 下载成功文件数量: %success_count% >> "%SUCCESS_FILE%"
endlocal
pause
网友评论