本文目录导读:

这里为您提供几个用于自动清理 Hexo 缓存的脚本方案,分别适用于 Windows(批处理)和 macOS/Linux(Shell)。
Windows 批处理脚本 (.bat)
将此代码保存为 clean-hexo.bat,放在 Hexo 博客根目录下。
@echo off
chcp 65001 >nulHexo 自动清理与重建
echo ========================================
echo Hexo 缓存自动清理脚本
echo ========================================
echo.
:: 清理 Hexo 缓存 (db.json 和 public 文件夹)
echo [1/3] 正在清理 Hexo 缓存...
call hexo clean
if %errorlevel% neq 0 (
echo [错误] hexo clean 执行失败,请确认已安装 hexo-cli
pause
exit /b %errorlevel%
)
echo [完成] 缓存清理成功!
echo.
:: 重新生成静态文件
echo [2/3] 正在重新生成静态文件...
call hexo generate
if %errorlevel% neq 0 (
echo [错误] hexo generate 执行失败
pause
exit /b %errorlevel%
)
echo [完成] 静态文件生成成功!
echo.
:: 启动本地预览服务器
echo [3/3] 正在启动本地服务器...
echo 提示:访问 http://localhost:4000 预览
echo 按 Ctrl+C 停止服务器
echo.
call hexo server
echo.
pause
使用方法:
- 在 Hexo 根目录右键 → 新建文本文档
- 粘贴上述代码
- 将文件重命名为
clean-hexo.bat(注意扩展名改为 .bat) - 双击运行即可
Shell 脚本 (Linux/macOS)
将此代码保存为 clean-hexo.sh,放在 Hexo 博客根目录下。
#!/bin/bash
# Hexo 缓存自动清理与部署脚本
# 适用于 Linux/macOS 系统
set -e # 遇到错误立即退出
echo "========================================"
echo " Hexo 缓存自动清理脚本"
echo "========================================"
echo ""
# 获取当前时间,用于日志
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$TIMESTAMP] 开始执行清理..."
# 检查是否在 Hexo 目录下
if [ ! -f "_config.yml" ]; then
echo "[错误] 请在 Hexo 博客根目录下运行此脚本!"
exit 1
fi
# 清理缓存
echo "[1/3] 正在清理 Hexo 缓存..."
npx hexo clean
echo "[完成] 缓存清理成功!"
echo ""
# 生成静态文件
echo "[2/3] 正在重新生成静态文件..."
npx hexo generate
echo "[完成] 静态文件生成成功!"
echo ""
# 询问是否启动服务器
read -p "[3/3] 是否启动本地服务器?(y/n): " start_server
if [ "$start_server" = "y" ] || [ "$start_server" = "Y" ]; then
echo "正在启动本地服务器..."
echo "提示:访问 http://localhost:4000 预览"
echo "按 Ctrl+C 停止服务器"
echo ""
npx hexo server
fi
echo ""
echo "========================================"
echo " 脚本执行完毕"
echo "========================================"
使用方法:
- 将上述代码保存为
clean-hexo.sh - 给文件添加执行权限:
chmod +x clean-hexo.sh - 运行脚本:
./clean-hexo.sh
带日志记录的高级版 (Shell)
这个版本会记录每次操作的日志文件,方便排查问题。
#!/bin/bash
# Hexo 缓存自动清理脚本 (带日志记录)
# 作者: AI Assistant
# 版本: 1.1
set -e
# 配置
LOG_DIR="logs"
LOG_FILE="${LOG_DIR}/clean-$(date "+%Y%m%d-%H%M%S").log"
# 颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 创建日志目录
mkdir -p "$LOG_DIR"
# 日志函数
log() {
local level=$1
local message=$2
local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "[${timestamp}] [${level}] ${message}" | tee -a "$LOG_FILE"
}
# 检查 Hexo 环境
check_hexo() {
if ! command -v npx &> /dev/null; then
log "ERROR" "npx 未安装,请先安装 Node.js"
exit 1
fi
if [ ! -f "_config.yml" ]; then
log "ERROR" "请在 Hexo 博客根目录下运行此脚本"
exit 1
fi
}
# 主函数
main() {
echo "========================================"
echo " Hexo 缓存自动清理脚本"
echo " 日志文件: ${LOG_FILE}"
echo "========================================"
echo ""
log "INFO" "开始执行 Hexo 清理任务"
# 检查环境
check_hexo
# 清理缓存
log "STEP" "正在清理 Hexo 缓存..."
if npx hexo clean >> "$LOG_FILE" 2>&1; then
log "SUCCESS" "缓存清理完成"
else
log "ERROR" "缓存清理失败,请查看日志文件"
exit 1
fi
# 生成静态文件
log "STEP" "正在重新生成静态文件..."
if npx hexo generate >> "$LOG_FILE" 2>&1; then
log "SUCCESS" "静态文件生成完成"
else
log "ERROR" "静态文件生成失败,请查看日志文件"
exit 1
fi
# 显示结果
echo ""
log "INFO" "任务完成!"
echo "生成的文件存储在: $(pwd)/public/"
echo "日志文件位置: $(pwd)/${LOG_FILE}"
}
# 执行主函数
main
# 询问是否启动服务器
echo ""
read -p "是否启动本地服务器进行预览?(y/n): " start_server
if [ "$start_server" = "y" ] || [ "$start_server" = "Y" ]; then
echo "启动服务器中..."
npx hexo server
fi
使用 Node.js 脚本 (跨平台)
如果你希望一个跨平台、无需区分操作系统的解决方案:
// save as clean-hexo.js
// 运行: node clean-hexo.js
const { execSync } = require('child_process');
const path = require('path');
const fs = require('fs');
// 颜色输出
const colors = {
green: '\x1b[32m',
yellow: '\x1b[33m',
red: '\x1b[31m',
reset: '\x1b[0m'
};
console.log(`${colors.green}========================================`);
console.log(' Hexo 缓存自动清理脚本');
console.log(`========================================${colors.reset}\n`);
// 检查是否在 Hexo 目录
if (!fs.existsSync('_config.yml')) {
console.error(`${colors.red}[错误] 请在 Hexo 博客根目录下运行此脚本!${colors.reset}`);
process.exit(1);
}
// 执行命令并处理错误
function runCommand(command, description) {
try {
console.log(`${colors.yellow}[步骤] ${description}...${colors.reset}`);
execSync(command, { stdio: 'inherit', cwd: process.cwd() });
console.log(`${colors.green}[完成] ${description}成功!${colors.reset}\n`);
} catch (error) {
console.error(`${colors.red}[错误] ${description}失败:${error.message}${colors.reset}`);
process.exit(1);
}
}
// 1. 清理缓存
runCommand('npx hexo clean', '清理 Hexo 缓存');
// 2. 重新生成
runCommand('npx hexo generate', '重新生成静态文件');
// 3. 询问是否启动服务器
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question(`是否启动本地服务器?(y/n): `, (answer) => {
readline.close();
if (answer.toLowerCase() === 'y') {
console.log(`${colors.yellow}启动本地服务器中...${colors.reset}`);
console.log('访问 http://localhost:4000 预览');
runCommand('npx hexo server', '启动本地服务器');
} else {
console.log(`${colors.green}脚本执行完毕!${colors.reset}`);
}
});
使用建议
- 推荐使用方案一(Windows)或方案二(Linux/macOS),简单可靠
- 如果经常需要清理,可以将脚本添加到系统定时任务(cron 或任务计划程序)实现自动化
- 对于生产环境部署,建议在脚本中加入
hexo deploy步骤自动部署到服务器
您可以根据自己的操作系统选择适合的脚本方案,如果需要定时自动清理,我可以帮您补充定时任务的配置方法。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播