-
保存腳本為GBK編碼
打開記事本或任何文本編輯器。
將腳本代碼復(fù)制到記事本中。
選擇“文件” -> “另存為”。
在“編碼”下拉菜單中選擇“ANSI”(這實(shí)際上是GBK編碼)力图。-
保存文件為 download_files.bat
-
運(yùn)行腳本(鼠標(biāo)左鍵暫停腳本,右鍵繼續(xù)執(zhí)行)
將上述腳本保存為 download_files.bat
將 download_files.bat 放在包含 .txt 文件的文件夾中掺逼。
雙擊 download_files.bat 文件運(yùn)行腳本吃媒。
- 特此注意 :文件夾名中文會(huì)導(dǎo)致程序閃退,盡量使用英文或者數(shù)字
@echo off
:: 設(shè)置代碼頁為GBK
chcp 936 > nul
setlocal enabledelayedexpansion
:: 獲取當(dāng)前日期
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!
:: 設(shè)置目標(biāo)文件夾
set TARGET_FOLDER=%cd%\!year!\!month!\!day!
:: 檢查目標(biāo)文件夾是否存在吕喘,不存在則創(chuàng)建
if not exist "%TARGET_FOLDER%" (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 不存在赘那,正在創(chuàng)建...
mkdir "%TARGET_FOLDER%"
if not exist "%TARGET_FOLDER%" (
echo 無法創(chuàng)建目標(biāo)文件夾 %TARGET_FOLDER%。
pause
exit /b
) else (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 已創(chuàng)建兽泄。
)
) else (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 已存在漓概。
)
:: 設(shè)置下載成功的URL記錄文件
set SUCCESS_FILE=%TARGET_FOLDER%\downloaded_urls.txt
:: 創(chuàng)建或清空下載成功的URL記錄文件
if exist "%SUCCESS_FILE%" del "%SUCCESS_FILE%"
:: 初始化計(jì)數(shù)器
set success_count=0
set total_count=0
:: 設(shè)置要處理的文件類型
set FILE_TYPE=*.txt
:: 遍歷當(dāng)前文件夾內(nèi)的所有指定類型的文件
for %%f in (%FILE_TYPE%) do (
set FILE=%%f
echo 正在處理文件: !FILE!
:: 初始化URL計(jì)數(shù)器
set url_count=0
:: 讀取URL列表
for /f "tokens=*" %%a in (!FILE!) do (
set URL=%%a
set /a url_count+=1
set /a total_count+=1
:: 簡(jiǎn)單的URL驗(yàn)證
if "!URL:~0,7!" == "http://" (
echo [第 !total_count! 個(gè)文件] 正在下載: !URL!
:: 提取文件名
for %%i in ("!URL!") do set FILENAME=%TARGET_FOLDER%\%%~nxi
echo 文件名: !FILENAME!
:: 使用curl下載文件,顯示進(jìn)度條并支持?jǐn)帱c(diǎn)續(xù)傳
curl -# -C - -o "!FILENAME!" "!URL!"
:: 使用wget下載文件病梢,顯示進(jìn)度條并支持?jǐn)帱c(diǎn)續(xù)傳
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 [第 !total_count! 個(gè)文件] 正在下載: !URL!
:: 提取文件名
for %%i in ("!URL!") do set FILENAME=%TARGET_FOLDER%\%%~nxi
echo 文件名: !FILENAME!
:: 使用curl下載文件胃珍,顯示進(jìn)度條并支持?jǐn)帱c(diǎn)續(xù)傳
curl -# -C - -o "!FILENAME!" "!URL!"
:: 使用wget下載文件,顯示進(jìn)度條并支持?jǐn)帱c(diǎn)續(xù)傳
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!
)
)
)
:: 顯示下載成功的文件數(shù)量
echo 總共下載成功的文件數(shù)量: %success_count%
:: 將下載成功的文件數(shù)量寫入到記錄文件
echo 總共下載成功的文件數(shù)量: %success_count% >> "%SUCCESS_FILE%"
endlocal
pause
image.png
- 優(yōu)化后的代碼
@echo off
:: 設(shè)置代碼頁為GBK
chcp 936 > nul
setlocal enabledelayedexpansion
:: 獲取當(dāng)前日期
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!
:: 設(shè)置目標(biāo)文件夾
set TARGET_FOLDER=%cd%\!year!\!month!\!day!
:: 檢查目標(biāo)文件夾是否存在蜓陌,不存在則創(chuàng)建
if not exist "%TARGET_FOLDER%" (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 不存在觅彰,正在創(chuàng)建...
mkdir "%TARGET_FOLDER%"
if not exist "%TARGET_FOLDER%" (
echo 無法創(chuàng)建目標(biāo)文件夾 %TARGET_FOLDER%。
pause
exit /b
) else (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 已創(chuàng)建钮热。
)
) else (
echo 目標(biāo)文件夾 %TARGET_FOLDER% 已存在填抬。
)
:: 設(shè)置下載成功的URL記錄文件
set SUCCESS_FILE=%TARGET_FOLDER%\downloaded_urls.txt
:: 創(chuàng)建或清空下載成功的URL記錄文件
if exist "%SUCCESS_FILE%" del "%SUCCESS_FILE%"
:: 初始化計(jì)數(shù)器
set success_count=0
set total_count=0
:: 設(shè)置要處理的文件類型
set FILE_TYPE=*.txt
:: 遍歷當(dāng)前文件夾內(nèi)的所有指定類型的文件
for %%f in (%FILE_TYPE%) do (
set FILE=%%f
echo 正在處理文件: !FILE!
:: 讀取URL列表并下載文件
for /f "tokens=*" %%a in (!FILE!) do (
set "URL=%%a"
set /a total_count+=1
:: 檢查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 [第 !total_count! 個(gè)文件] 正在下載: !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!
)
)
)
:: 顯示并記錄成功數(shù)量
echo 下載成功文件數(shù)量: %success_count%
echo 下載成功文件數(shù)量: %success_count% >> "%SUCCESS_FILE%"
endlocal
pause