以前面一文所推薦的gigafile網盤命令行式操作腳本(https://keyi.eu.org/?p=904)爲基礎,寫成了批處理腳本,一次性對多個儲存在list.txt中的網盤地址進行下載。
1、windows下的powershell中使用的批處理:
# 檢查 list.txt 是否存在
if (-Not (Test-Path "list.txt")) {
Write-Host "list.txt 文件不存在。請檢查後重試。"
exit 1
}# 創建或清空 log.txt
Out-File -FilePath "log.txt" -Encoding UTF8# 讀取 list.txt 中的 URL
Get-Content "list.txt" | ForEach-Object {
$url = $_.Trim() # 移除空白字符
if ($url -ne "") {
Write-Host "開始下載:$url"# 記錄開始時間
$startTime = Get-Datetry {
# 使用 python -m gfile 來執行
& "python" -m gfile download $url$endTime = Get-Date
$duration = $endTime – $startTime# 寫入日志
Add-Content -Path "log.txt" -Value "URL: $url"
Add-Content -Path "log.txt" -Value "開始時間: $startTime, 結束時間: $endTime, 用時: $duration"
Add-Content -Path "log.txt" -Value "————————————"Write-Host "完成下載:$url"
} catch {
Add-Content -Path "log.txt" -Value "下載失敗: $url – 錯誤信息: \((\)_.Exception.Message)"
Write-Host "下載失敗:$url"
}
}
}Write-Host "所有下載已完成,請檢查 log.txt 文件。"
2、windows下的powershell中使用的批處理(增加使用代理服務器訪問的功能):
# 檢查 list.txt 是否存在
if (-Not (Test-Path "list.txt")) {
Write-Host "list.txt 文件不存在。請檢查後重試。"
exit 1
}# 設置 SOCKS5 代理
$env:ALL_PROXY = "socks5://127.0.0.1:3333"# 創建或清空 log.txt
Out-File -FilePath "log.txt" -Encoding UTF8# 讀取 list.txt 中的 URL
Get-Content "list.txt" | ForEach-Object {
$url = $_.Trim() # 移除空白字符
if ($url -ne "") {
Write-Host "開始下載:$url"# 記錄開始時間
$startTime = Get-Datetry {
# 使用 python -m gfile 來執行
& "python" -m gfile download $url$endTime = Get-Date
$duration = $endTime – $startTime# 寫入日志
Add-Content -Path "log.txt" -Value "URL: $url"
Add-Content -Path "log.txt" -Value "開始時間: $startTime, 結束時間: $endTime, 用時: $duration"
Add-Content -Path "log.txt" -Value "————————————"Write-Host "完成下載:$url"
} catch {
Add-Content -Path "log.txt" -Value "下載失敗: $url – 錯誤信息: \((\)_.Exception.Message)"
Write-Host "下載失敗:$url"
}
}
}Write-Host "所有下載已完成,請檢查 log.txt 文件。"
3、在linux系統下的sh腳本:
#!/bin/bash
# 確保腳本遇到錯誤時退出
set -e# 檢查 list.txt 是否存在
if [ ! -f "list.txt" ]; then
echo "list.txt 文件不存在。請檢查後重試。"
exit 1
fi# 創建或清空 log.txt
> log.txt# 逐行讀取 list.txt 中的 URL
while IFS= read -r url; do
# 忽略空行和以 # 開頭的行
if [[ -z "$url" || "$url" =~ ^# ]]; then
continue
fiecho "開始下載:$url"
# 記錄開始時間
start_time=$(date ‘+%Y-%m-%d %H:%M:%S’)
start_epoch=$(date ‘+%s’)# 執行下載
gfile download "$url"# 記錄結束時間
end_time=$(date ‘+%Y-%m-%d %H:%M:%S’)
end_epoch=$(date ‘+%s’)# 計算用時
duration=$((end_epoch – start_epoch))# 寫入日志
echo "URL: $url" >> log.txt
echo "開始時間: $start_time, 結束時間: $end_time, 用時: $秒" >> log.txt
echo "————————————" >> log.txtecho "完成下載:$url"
done < "list.txt"echo "所有下載已完成,請檢查 log.txt 文件。"
转载请注明:刘太监的私藏 » gigafile批量下載腳本